Compare commits

..

2886 Commits

Author SHA1 Message Date
Badlop 8cd0894ad5 Update version numbers of the related: exmpp, ejabberd 2, and Erlang 2011-03-11 10:55:34 +01:00
Badlop 33feca74ec Document that ODBC tables are created by ejabberd itself (EJAB-1421) 2011-03-10 20:29:07 +01:00
Badlop 102dabdefc Only attempt to migrate an old ODBC table if it still exists 2011-03-10 20:29:04 +01:00
Christophe Romain 38bf3bfc1c fix PEP broadcasting (thanks to Karim Gemayel)(EJAB-1411) 2011-03-10 12:24:56 +01:00
Pablo Polvorin afec527f5f Include client namespace in CAPs queries (EJAB-1411)
When constructing an IQ record, if no namespace is specified
for the IQ,  exmpp treat that literally as "no namespace" and
so put xmlns="" (it do not interpret it as "no change" and let
the parent namespace apply).
So it is neccesarly to especify the jabber:client namespace.

See EXMPP-53.
2011-03-09 16:30:16 -03:00
Badlop 8a135262db Fix bashism and remove duplicate unused option (EJAB-1404) 2011-03-09 16:26:09 +01:00
Pablo Polvorin 3b2af5dfc5 Fix internal-server-error error response (EJAB-1414).
Ejabberd was trying to send a tuple instead of the full error stanza.
2011-03-09 10:30:54 -03:00
Badlop 4caf2c8674 If the port number isn't listener, then specify the protocol (EJAB-1418) 2011-03-03 11:36:35 +01:00
Badlop 6cc950d76f captcha_host must have the port number to get protocol (EJAB-1418) 2011-03-03 00:05:06 +01:00
Badlop bf8e09038e ejabberdctl needs space between INET_DIST_INTERFACE (thanks to Dale Chase)(EJAB-1416) 2011-02-28 18:42:04 +01:00
Badlop 9a55ced505 Fix to show correctly the command that is unknown 2011-02-23 16:51:40 +01:00
Badlop eaa17dab90 Revert "Mention in release notes that Pubsub/PEP isn't ready for alpha-testing (EJAB-1393)"
This reverts commit 76b0300505.
2011-02-23 12:06:32 +01:00
Badlop 62a4e20ae7 Tweak pg2_backport.erl to work with Erlang older than R13A (EJAB-1349) 2011-02-22 23:44:22 +01:00
Badlop e0bda563e6 Add support for '@online@' Shared Roster Group (thanks to Martin Langhoff)(EJAB-1391)
New version of the @online@ patch originally by Collabora.
Notes:
- the presence push is mediated via the group rather than
  per user - this may reduce memory footprint... _if_ ejabberd
  has some smart optimisation in that codepath
- it assumes that any group with membership @online@ _displays_
  online as well -- this is a simplification and breaks the
  decoupling that ejabberd has in this regard.
2011-02-21 22:32:57 +01:00
Badlop 61e4fde247 Forward old messages to newly spawned extauth process (thanks to Mika Seppänen)(EJAB-1385) 2011-02-21 16:19:45 +01:00
Christophe Romain 7f899ee179 fix broadcast issue (EJAB-1411) 2011-02-21 15:12:31 +01:00
Christophe Romain 75a85beb80 Merge branch 'master' of git+ssh://gitorious.process-one.net/ejabberd/mainline 2011-02-21 14:45:44 +01:00
Christophe Romain 0b7bb342cf fix API issue for subscribe/unsubscribe (EJAB-1410) 2011-02-21 14:45:05 +01:00
Badlop 8f9bf47d78 New route_iq/5 accepting Timeout (thanks to Edwin Fine)(EJAB-1398)
Also new register_iq_response_handler/5
2011-02-21 13:46:59 +01:00
Badlop 76b0300505 Mention in release notes that Pubsub/PEP isn't ready for alpha-testing (EJAB-1393) 2011-02-21 12:55:40 +01:00
Christophe Romain 15749a2193 server must generate itemid if not given at publish time (EJAB-1409) 2011-02-21 12:08:58 +01:00
Badlop 60d83f937d New DIST_USE_INTERFACE to restrict IP where erlang connections are listened (EJAB-1404) 2011-02-16 23:53:40 +01:00
Badlop 7060791e4e New Indonesian translation (thanks to Irfan Mahfudz Guntur)(EJAB-1407) 2011-02-16 13:46:48 +01:00
Christophe Romain 72395ba497 fix empty pubsub payload check 2011-02-14 16:48:54 +01:00
Christophe Romain 4a2005f7cc update copyright up to 2011 2011-02-14 13:47:22 +01:00
Badlop 90c711162b Provide HTTPS URL in CAPTCHA form when listener has 'tls' option (EJAB-1406) 2011-02-14 13:01:46 +01:00
Badlop 7111ecc1b7 Fix typo in French translation 2011-02-11 20:21:24 +01:00
Badlop e1cc8a90fa Escape output from ctlexec() to erl script (thanks to Dan Scott)(EJAB-1399) 2011-02-09 16:34:48 +01:00
Christophe Romain 96d1400792 typo fix 2011-02-09 16:32:11 +01:00
Christophe Romain 975e7f47ee fix previous commit issues 2011-02-09 14:27:40 +01:00
Christophe Romain 2f681b05f3 refactor pubsub broadcast to allow large optimization 2011-02-08 19:08:38 +01:00
Badlop a3dba06baf Remove erroneous comment (EJAB-645) 2011-02-03 17:27:04 +01:00
Badlop 16a97ab903 Handle Tigase's unexpected version=1.0 when ejabberd doesn't announce it (EJAB-1379) 2011-01-31 19:50:56 +01:00
Badlop d8f339bceb Add to example config file access_from comment 2011-01-28 17:16:36 +01:00
Badlop 798d7bce1b Fix unused variable when code was copied from mod_pubsub.erl 2011-01-27 16:42:27 +01:00
Badlop a98193ea6e Merge exmpp jlib.erl into ejabberd jlib.erl (EJAB-1377) 2011-01-27 16:30:55 +01:00
Pablo Polvorin 70a2200888 Fix initial presence after roster subscription approval (EJAB-1384)
Send initial presence after the roster subscription workflow
is complete.
2011-01-27 11:05:16 -03:00
Badlop 3391c9cad7 mod_pres_counter prevents subscription flood (thanks to Ahmed Omar and Alexey Shchepin)(EJAB-1388) 2011-01-19 23:44:53 +01:00
Badlop d5cfdc7f1f Fix delayed response of a timeout call was reused for next login (EJAB-1385) 2011-01-19 19:27:52 +01:00
Badlop caf64c035f Subsecond timestamp granularity in offline messages (EJAB-1376) 2011-01-18 23:25:41 +01:00
Badlop 089a00fc3f Clarify more the expected content of welcome_message mod_register option 2011-01-17 23:42:51 +01:00
Badlop bec67378aa Fix compilation bug in BOSH 2011-01-17 17:31:28 +01:00
Badlop 9bb4f124ad Update NODE and HOST with the definitive values from ejabberdctl or command line 2011-01-17 17:28:12 +01:00
Christophe Romain 722fdd6bc7 check_start must grep processes for nodename last 2011-01-17 16:55:00 +01:00
Christophe Romain d34dab4822 improve check_start, avoid false process match with grep 2011-01-17 16:52:20 +01:00
Badlop ad357c2f59 Clarify error message when BOSH query is sent to non-running module 2011-01-14 15:48:22 +01:00
Badlop 2d0d46e296 Option to reject S2S connection if untrusted certificate (EJAB-464) 2011-01-11 16:38:33 +01:00
Badlop d523901ddc Include From attribute in the stream header of outgoing S2S connections 2011-01-11 16:38:32 +01:00
Badlop 41fc44e55f When TLS is required in s2s, add subelement to stream:features starttls 2011-01-11 16:38:30 +01:00
Badlop befb4fc7ea Add option to require encryption in S2S connections (EJAB-495) 2011-01-11 16:38:28 +01:00
Pablo Polvorin 54557cb867 Send correct from/to attributes in s2s dialback response (EJAB-1363).
We were sending swapped from/to attributes when replying to db:verify requests.
Some servers don't mind about this, but others like prosody checks this and
rejects the verification, the s2s connection in that case couldn't be established.
2011-01-10 17:46:07 -03:00
Badlop 2d3efdf983 Fix old unresolved merge conflicts in pg.sql
Please note that ejabberd takes care to create the tables in your
ODBC database if needed. The file pg.sql is provided for reference
purposes only, as it isn't needed when preparing the database.
2011-01-09 18:51:24 +01:00
Badlop 159529d539 Add start time information in ejabberd log
One way to print that information is to configure in ejabberd.cfg
  {loglevel, {4, [{ejabberd_app, debug}]}}.
2011-01-05 18:38:01 +01:00
Badlop e3d875d09f Several bugfixes in Caps (thanks to Karim Gemayel)
- fix bug with caps 2.0: ERRORs were logged in some cases
- enhance record definitions
- turn string() data into binary() ones
- remove mod_caps:node_to_binary/2, mod_caps:features_to_binary/1 and mod_caps:binary_to_features/1.

Tested with Psi+ (caps 1.0) and OneTeam (caps 2.0), and they now don't produce ERROR REPORTs.
2010-12-30 20:32:01 +01:00
Badlop ea84f802e5 Keep the order of stanzas when BOSH sends several (EJAB-1374) 2010-12-30 13:49:26 +01:00
Badlop 20c4919eda Revert buggy previous commit (thanks to W. Andrew Loe III), and add better fix 2010-12-30 13:49:07 +01:00
Badlop 9cbf08700d Provide stacktrace in log report when a transaction fails 2010-12-30 13:47:15 +01:00
Badlop ff455f1a42 Don't delete the whole table, as other module instances may already have started rooms. 2010-12-30 13:44:53 +01:00
Evgeniy Khramtsov a4728d14d5 Change c2s state before offline messages resending 2010-12-28 21:12:33 +09:00
Christophe Romain f2925d8efc new caps processing and related fixes in ejabberd_c2s.erl and miscellaneous fixes in mod_pubsub.erl (Thanks to Karim Gemayel)(EJAB-620) 2010-12-24 16:21:28 +01:00
Badlop 4b0a7fe307 Only call mod_roster when the user is in a local vhost, fixing EJAB-869 2010-12-23 21:05:21 +01:00
Badlop 980d9c37ea Fix bug introduced with an old commit (EJAB-72) 2010-12-23 19:19:00 +01:00
Alexey Shchepin a40e9c2626 Remove version=1.0 from stream opening when TLS is not available (thanks to Karim Gemayel) 2010-12-23 16:28:35 +02:00
Badlop 897141c9e1 Delete obsolete modules, because now the standard ones use gen_storage 2010-12-23 14:19:59 +01:00
Badlop d20b6dccb3 Remove log line that was intended only for debugging during development 2010-12-23 13:30:41 +01:00
Badlop fe909a45e9 Allow auth modules to provide SASL errors; default is "not-authorized".
See
http://tools.ietf.org/html/draft-saintandre-rfc3920bis-09#section-7.4
2010-12-23 13:27:24 +01:00
Alexey Shchepin bb4a87806f Make jlib:ip_to_list safe to use 2010-12-23 13:17:14 +01:00
Badlop 7ca1c0387c Clean muc_online_room when mod_muc starts (EJAB-1365) 2010-12-23 02:16:00 +01:00
Badlop 8c4e4e5f91 Bugfix in starting persistent rooms when mod_muc odbc (EJAB-1365) 2010-12-23 02:15:58 +01:00
Badlop 93787bee73 Bugfix mod_muc odbc couldn't register nickname (EJAB-1364) 2010-12-23 02:15:56 +01:00
Badlop d3efcf8682 Document the types of some state elements 2010-12-23 02:15:53 +01:00
Badlop 268e80ece7 Document in mod_muc.erl the gen_storage table schema (EJAB-1368) 2010-12-23 02:15:43 +01:00
Badlop a33c389b9b Add support in WebAdmin to register vhosts, and a page to restart or remove it 2010-12-23 02:15:40 +01:00
Badlop 9ce44cd0a7 New ejabberd commands to list, register and remove vhosts 2010-12-23 02:15:38 +01:00
Badlop be8e1bfc35 Fix register of vhost (EJAB-1346) 2010-12-23 02:15:35 +01:00
Badlop 7b2b9412ad Add some variable type hints 2010-12-23 02:15:33 +01:00
Badlop 75f2e775ab Update auth modules to support stopping 2010-12-23 02:15:09 +01:00
Badlop 0859667a8c Fix Type definition 2010-12-21 01:04:52 +01:00
Badlop 563344d219 Remove call to function no longer existent 2010-12-21 01:03:00 +01:00
Evgeniy Khramtsov a13c9185f7 Make sure 'closed' event is correctly processed on every state 2010-12-17 17:27:52 +09:00
W. Andrew Loe III 1eeff9b0df Export make_sid so we can use it in pre-binding. 2010-12-15 16:58:09 +01:00
W. Andrew Loe III 942c6e4dd0 Ignore OS X libraries. 2010-12-15 16:47:46 +01:00
Badlop 8b7d529519 Add release notes for ejabberd 2.1.6 2010-12-15 16:25:41 +01:00
Badlop a47caa8c54 Fix warning about unused variables 2010-12-13 20:59:36 +01:00
Badlop aee3e30232 Fix some exmpp attribute type 2010-12-11 23:16:17 +01:00
Badlop 1bbb41682a Mention in the Guide that mod_muc supports the backend option 2010-12-09 23:58:43 +01:00
Badlop d448b6c955 Fix some errors when porting from mod_pubsub.erl (thanks to Karim Gemayel) 2010-12-07 19:36:34 +01:00
Badlop 74f86bef6a Support for X-Forwarded-For HTTP header (EJAB-1356) 2010-12-07 16:51:20 +01:00
Christophe Romain ce0219c569 update pubsub_odbc patch 2010-12-07 15:22:54 +01:00
Christophe Romain 53cc032251 add node attribute to pubsub subscribe event (EJAB-1361) 2010-12-07 13:53:58 +01:00
Badlop a8bf889e79 Fix detection of mod_last at server start (EJAB-641) 2010-12-03 17:25:10 +01:00
Badlop 4e2bd18c7f Update example extauth script with tryregister, removeuser and removeuser3 (EJAB-641) 2010-12-03 17:23:55 +01:00
Badlop 27872c6022 Support PostgreSQL 9.0 (EJAB-1359)(thanks to Stephen Gibberd and Konstantin Nikiforov) 2010-12-03 12:43:27 +01:00
Badlop c6e0cff144 Fix use of exmpp 2010-12-02 20:14:54 +01:00
Pablo Polvorin a8ef64ab45 Fix cyrsasl_digest RFC-2831 2.1.2.1 (EJAB-476)
Fix sasl digest bug when username|password|resource strings had
all characters <= U+00FF and at least one character >= U+0080.

Warnning:
Note that by fixing the bug, we may be broking compatibility with clients
that "implements" it.
See comments on https://support.process-one.net/browse/EJAB-476
2010-12-02 12:56:21 -03:00
Christophe Romain 9afaec40f5 fix pubsub cross domain eventing (EJAB-1340) 2010-12-02 14:05:19 +01:00
Evgeniy Khramtsov 8520b76483 Increase maximum restart strategy of the ODBC supervisor. Do not brutally kill ODBC processes on supervisor shutdown to avoid polution of the mnesia table 2010-12-01 14:25:58 +09:00
Badlop b8f04aae6f When the Password attribute is missing in PIEFXIS file, don't check account auth. 2010-12-01 00:55:29 +01:00
Pablo Polvorin c9db1f691c Merge branch 'master' of git+ssh://git@gitorious.process-one.net/ejabberd/mainline 2010-11-29 16:56:32 -03:00
Pablo Polvorin ef572c815f Port to latest exmpp changes (attribute names as binary()).
All atributes are now binary() instead of atoms.
2010-11-29 16:44:31 -03:00
Christopher tofu Zorn dad3297c9c expose find_connection for routing in other modules (if needed) 2010-11-29 20:06:02 +01:00
Christopher tofu Zorn 312574cbc5 add the ability to send raw xml packets over http bind 2010-11-29 20:06:00 +01:00
Badlop 008a0a29cd Fix characters not allowed in username. Don't include that in translatable string.
List mentioned in:
http://xmpp.org/rfcs/rfc3920.html#nodeprep-prohibited
2010-11-29 19:39:01 +01:00
Badlop f9e2466867 Support negative part-hour TZ values (thanks to Alexander Zhukov)(EJAB-1301) 2010-11-29 14:35:57 +01:00
Alexey Shchepin 26550efd91 Don't loop when there is nothing after a stream start 2010-11-26 17:11:56 +01:00
Andreas Köhler 7be6e33ea4 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:13:36 +01:00
Badlop 7aa48e265a Send Unavailable Presence stanza when an occupant is kicked or banned (EJAB-1350) 2010-11-22 21:16:34 +01:00
Badlop 2ef06678c0 Port SSLVER detection from 2.1.x, needed for ?PG2 (EJAB-1349) 2010-11-22 16:20:40 +01:00
Badlop 2aa56cd86e Use pg2 from R14B in systems with older versions (EJAB-1349)
pg2_backport.erl is a copy of pg2.erl from Erlang/OTP R14B.
That module is used in ejabberd installations where an OTP
previous to R14 is installed.
2010-11-22 16:02:36 +01:00
Badlop 33116be0ae Disapprove the use of R14A and R14B due to the rwlock bug. 2010-11-19 15:36:48 +01:00
Badlop d94f6b45bf Remove forgotten mentions of obsolete and undocumented mod_..._odbc 2010-11-19 11:31:01 +01:00
Christophe Romain 81f4e71efa add missing modrosterodbc newcommand 2010-11-19 10:35:00 +01:00
Evgeniy Khramtsov 5a3fe4e348 Document mod_shared_roster_ldap (thanks to Marcin Owsiany) 2010-11-18 17:02:21 +09:00
Badlop c2dface515 Fix http-bind supervisor to support multiple vhosts (EJAB-1321) 2010-11-17 20:30:37 +01:00
Andreas Köhler 690c56ca6d Fix R12B5 compatibility in ejabberd_http_bind.erl (EJAB-1343)
erlang:max/2 and :min/2 are new functions
2010-11-17 13:03:59 +01:00
Andreas Köhler aaa69a8c36 Use LFrom and LTo consistently in ejabberd_s2s_in:stream_established/2 (EJAB-1342) 2010-11-17 12:56:18 +01:00
Evgeniy Khramtsov ec0e0ef8a6 Do not start mod_proxy65 if it is unable to bind an address (EJAB-1336) 2010-11-17 18:13:55 +09:00
Evgeniy Khramtsov 0b8a761a61 Use MEDIUMTEXT type for vcard avatars in MySQL schema (EJAB-1252) 2010-11-17 17:42:04 +09:00
Evgeniy Khramtsov 0ccbd7e3f2 Do not print full error message when LDAP timeout occurs (EJAB-1324) 2010-11-17 17:15:28 +09:00
Evgeniy Khramtsov 549f1029a6 Set SSL_MODE_RELEASE_BUFFERS mode when available (EJAB-1351) 2010-11-17 13:55:35 +09:00
Badlop da7e53fe3c Temporary workaround for starting stored rooms 2010-11-16 02:13:58 +01:00
Badlop 3e9de2ec79 Provide new, not old, affiliation in kick/ban presence with codes 321 and 301 2010-11-16 01:19:34 +01:00
Badlop d146ef873d Fix typos in the example configuration file 2010-11-12 22:01:09 +01:00
Andreas Köhler d8d20d5b88 Before binding tcp ports, checks the socket type and listener options
(EJAB-1334)

If the callback module has a socket type of independent and needs to
create the listener itself, do not pre-bind the port. The same holds if
there are errors in the listener configuration.
2010-11-10 23:45:27 +01:00
Andreas Köhler 1ab92d1159 Bind listener ports early and start accepting connections later
(EJAB-1334)

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:45:24 +01:00
Badlop abf069da9e Rollback some Specs that break Dialyzer (thanks to Karim Gemayel)(EJAB-1345) 2010-11-10 21:27:53 +01:00
ppolvorin f4f949bd72 Fix anonymous user cleanup (EJAB-883)
anonymous users table and vcards were not correctly cleaned up
after the user disconnect.
2010-11-10 13:27:47 -03:00
Andreas Köhler f4507a088a In mod_last*:get_last_iq/4, check for user resources first to return 0 seconds if there is one
Fixes problem 2 of EJAB-1158.
2010-11-10 15:41:10 +01:00
Andreas Köhler 6b46b8f794 Refactor mod_last to use the same core get_last/2 functionality, but keep api stable
The local function get_last/4 has been renamed to get_last_iq/4, since
it converts the result of get_last/2 (typically {ok, TimeStamp, Status})
to an iq packet.
2010-11-10 15:41:09 +01:00
Andreas Köhler 7d93cad452 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:41:08 +01:00
Andreas Köhler 860d8525ee 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:41:07 +01:00
Andreas Köhler 351635d0aa Use ejabberd_c2s:privacy_check_packet/5 for all those hook folded runs in the c2s module 2010-11-10 15:41:06 +01:00
Andreas Köhler 614f13714c 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:41:05 +01:00
Andreas Köhler 642b18edcb Correct error responses of forbidden offline last activity queries
According to XEP-0012 Last Activity, the server must return iq errors
with forbidden instead of not-allowed.

Fixes problem 1 of EJAB-1158.
2010-11-10 15:41:03 +01:00
Christophe Romain 03239c662e populate pubsub#roster_groups_allowed in node configuration options (thanks to Karim Gemayel)(EJAB-1344) 2010-11-10 15:14:16 +01:00
Christophe Romain fbb84c8256 fix bad plugin order issue injected in previous patch (EJAB-1286) 2010-11-09 14:36:04 +01:00
Andreas Köhler e710ac51eb Correct privacy check direction in mod_last (EJAB-1339)
The change for EJAB-1271 to change the direction of the privacy check
from out to in violates the idea that the check should imitate a
subscription state check of from. Rather correct the order of the From
and To parameters.
2010-11-09 13:57:01 +01:00
Andreas Köhler 6ce29e7ecb Change max restart strategy of ejabberd_odbc_sup to handle some SQL timeouts. 2010-11-08 18:42:37 +01:00
Badlop e84d853bc3 Improve the IQ error stanzas to provide an explanation (EJAB-1262) 2010-11-08 12:01:14 +01:00
Christophe Romain 5e0f2b8560 avoid node_call to break transaction (thanks to Karim Gemayel)(EJAB-1286) 2010-11-08 11:18:33 +01:00
Andreas Köhler 01b6cd3aba Re-raise exceptions caught in gen_mod:start_module/3 (EJAB-1335)
Modules configured by the administrator normally should not be treated
as optional, so a exception (error, exit, throw) to start them should not
be caught and logged only.

This patch re-raises a caught exception instead of ignoring the
exception and inserting the module's opts on success. That way
gen_mod:get_module_opt/4 should work while calling Module:start/2.
2010-11-07 00:47:53 +01:00
Badlop 2ebfd4090a Fix register 2010-11-06 21:53:18 +01:00
Evgeniy Khramtsov e4a1eb4370 Take care of xml:lang attribute in unauthenticated stanzas as well 2010-11-06 21:53:16 +01:00
Evgeniy Khramtsov e3afec9465 Disable LRU caching algorithm for LDAP shared rosters 2010-11-06 21:53:14 +01:00
Evgeniy Khramtsov 29fbe6d8e1 Do not store long language tag to avoid possible DoS/flood attacks 2010-11-06 21:53:13 +01:00
Evgeniy Khramtsov 5c3611fe32 LDAP shared roster support (thanks to Realloc and Marcin Owsiany) 2010-11-06 21:53:11 +01:00
Badlop 4a1d8c2cd2 New ip_access option restricts which IPs can register (thanks to Alexey Shchepin)(EJAB-915) 2010-11-05 19:33:20 +01:00
Badlop b9c6f6e627 Disable mod_register_web in default config because by default captcha is disabled 2010-11-05 19:33:10 +01:00
Badlop d456578b3c Added mod_register_web: web page for account registration (EJAB-471) 2010-11-05 18:21:59 +01:00
Badlop 659d546897 Fix warnings detected by Dialyzer 2010-11-04 01:00:18 +01:00
Jonas Ådahl bacecae3dd Fixes a leak of ejabberd_receiver processes.
When a (non-frontend) socket module without any custom receiver fails to
start, the newly created ejabberd_receiver process needs to be properly
closed.
2010-11-03 17:10:46 +01:00
Badlop 5168f68946 Don't add Pid to Captcha record when it's requested by c2s instead of muc 2010-11-03 14:05:27 +01:00
Badlop 9a32615122 Handle incoherence of argument type in calls to remove_user 2010-11-03 13:24:40 +01:00
Badlop 48dcc5180a Additional fixes for previous captcha commits related to exmpp 2010-11-03 12:44:11 +01:00
Badlop 32868e534e Include a Required xml element in the captcha field 2010-11-03 12:44:04 +01:00
Evgeniy Khramtsov 773c54f912 Add top-level instructions for x:data incompatible clients 2010-11-03 12:44:03 +01:00
Badlop 82e8048a8a Changes in registration form to workaround client problems (EJAB-1262)
Changes included:
* Remove var in fixed field because Gajim and Tkabber display it to user
* Add workaround for Psi's overlap fields
* Add var=url attribute, required by Psi to display the field
* Provide the image URL as a copy-able form field
2010-11-03 12:44:02 +01:00
Badlop 633b467a22 Workaround for Psi's wrong Type in form submission 2010-11-03 12:44:01 +01:00
Badlop b0ae3d14aa Add CAPTCHA example configurations to cfg (EJAB-1262)(EJAB-1326) 2010-11-03 12:44:00 +01:00
Evgeniy Khramtsov 2d8bfb1a15 Provide image url in registration form when captcha is enabled 2010-11-03 12:43:59 +01:00
Evgeniy Khramtsov 30366dbe98 Add password entropy check (EJAB-1326) 2010-11-03 12:43:58 +01:00
Evgeniy Khramtsov 55bd17d6f5 Rename option captcha to captcha_protected for consistency 2010-11-03 12:43:57 +01:00
Badlop f310292da4 CAPTCHA IBR support (EJAB-1262)(thanks to Evgeniy Khramtsov) 2010-11-03 12:43:55 +01:00
Badlop 81546f3270 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 14:04:10 +01:00
Badlop 91dee14ad6 Fix errors in EDoc comments 2010-10-28 18:23:02 +02:00
Badlop 231d44ffa3 Handle binary data from SockMod:recv in ejabberd_http:recv_data/3 (thanks to Andreas Köhler)(EJAB-1331) 2010-10-27 21:21:15 +02:00
Andreas Köhler 70c247d357 Ignore Length argument to tls:recv/[23] (EJAB-1327)
The Length argument cannot be used for gen_tcp:recv/3, because the
compressed size does not equal the desired uncompressed one.
2010-10-26 19:33:56 +02:00
Andreas Köhler 1579bf2d18 Re-use the TLSSock argument in tls:send/2 (EJAB-1327) 2010-10-26 19:33:53 +02:00
Badlop d9ac399c74 Improve example of outoging_s2s_options 2010-10-22 23:16:52 +02:00
Christophe Romain 378b8a60c6 add function specification, convert string() to binary(), fix pubsub.hrl (thanks to Karim Gemayel) 2010-10-19 17:08:59 +02:00
Peter Lemenkov 70cdcfcae1 Change directory before any operation to one readable by INSTALLUSER (EJAB-1322)
This is required in order to suppress error messages like
"File operation error: eacces" when ejabberd was started from directory,
which is not readable by INSTALLUSER (/root, for example). See rhbz #564686:

https://bugzilla.redhat.com/564686

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2010-10-19 01:16:15 +02:00
Badlop a473935782 Fix bug in mod_pubsub in_subscription return value 2010-10-19 00:28:24 +02:00
Badlop 16f0873488 Fix bug when routing error stanza 2010-10-16 22:51:51 +02:00
Badlop 17b4aaa1f7 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:51:50 +02:00
Badlop eddbad2c76 Check privacy of outgoing Message stanzas (EJAB-1320) 2010-10-16 22:51:48 +02:00
Badlop 2e932dd85c Add support to ejabberd_ctl to handle anonymous command arguments 2010-10-16 00:48:03 +02:00
Badlop 3bc7127743 Rename aclocal.m4 to acinclude.m4 (thanks to Andreas Köhler)
Also fixed minor typos, added the compiled aclocal.m4 to gitignore,
and documented how to build the script 'configure'.

Related documentation:
http://www.gnu.org/software/hello/manual/automake/Local-Macros.html#Local-Macros
http://www.gnu.org/software/hello/manual/automake/Invoking-aclocal.html#Invoking-aclocal
2010-10-15 16:24:17 +02:00
Badlop d6a69dbca5 Fix errors detected by Dialyzer 2010-10-15 13:11:14 +02:00
Badlop 864b0ec149 Document ejabberd_loglevel using EDoc (EJAB-225) 2010-10-15 13:10:56 +02:00
Badlop abdbb347eb Rename ejabberd_loglevel:get/0 to get_default, and add a more general get (EJAB-225)
API change: ejabberd_loglevel:get/0 renamed to ejabberd_loglevel:get_default/0
2010-10-15 13:10:53 +02:00
Andreas Köhler 651ee5eb19 Fix unused variable warning in ejabberd_loglevel 2010-10-15 13:10:43 +02:00
Andreas Köhler e1f5fb798c Add set_custom/2, clear_custom/0 and clear_custom/1 to ejabberd_loglevel 2010-10-15 13:10:42 +02:00
Andreas Köhler 14349890e3 Document new loglevel configuration form. 2010-10-15 13:10:41 +02:00
Andreas Köhler 81555d8def Add support for changing the loglevels for given modules (EJAB-225)
ejabberd_loglevel:set/1 now understands more input formats:

set(Param) -> {module, ejabberd_logger}
    Param = Level | {Level, CustomLevels}
    CustomLevels = [CustomLevel]
    CustomLevel = {Module, Level}
    Module = atom()
    Level = integer() | atom()

set(Level) is equivalent to set({Level, []}), so it clears all module
level customizations. log_src/2 adds additional function heads for those
_msg function and module combinations that need non-default behavior,
i.e. add or filter logging.

ejabberd_loglevel:get/0 only returns the default log level. To retrieve
the complete setting use ejabberd_logger:get/0 instead.
2010-10-15 13:10:40 +02:00
Andreas Köhler cc76869da5 Use warning_msg event type for warning log level. 2010-10-15 13:10:39 +02:00
Andreas Köhler 6523258b53 Add warning message and report handlers to ejabberd_logger_h.erl. 2010-10-15 13:10:38 +02:00
Andreas Köhler 1cbe821145 Improve ejabberd_logger code generation
Split the monolithic function ejabberd_loglevel:ejabberd_logger_src/1
into separate functions returning deep lists.

log_src/2 now returns the code for any of *_msg/4. Its parameters are
the current loglevel (integer()) and a loglevel specification
(#loglevel{}), with added information in #loglevel:

- function: The api function enabled by this level, may be no_log
- event_type: The type of the event sent to the error_logger
- msg_prefix: One character used in the message (one of "DIWEC")

If the current loglevel is too low for logging, the api function is
optimized at compile time.
2010-10-15 13:10:36 +02:00
Andreas Köhler 61d8bf9440 Use records for encoding static loglevel information. 2010-10-15 13:10:34 +02:00
Badlop d1f5fb4aa9 Speed up ejabberd_s2s:is_service/2, allow_host/2 (thanks to Andreas Köhler)(EJAB-1319)
Iterating through the list of possible parent domains of a given domain
and comparing with the list of hosts or routes is almost always faster
than doing it the other way around. It naturally returns the shortest or
longest parent domain satisfying a predicate, whereas the possibly long
list compared with would need to be sorted by length first.
2010-10-14 21:14:46 +02:00
Badlop 0960637aa4 Include a gitignore file in the ejabberd git repository (EJAB-1312) 2010-10-14 19:49:33 +02:00
Christophe Romain a73d451576 make http-bind restartable (thanks to Andreas Köhler)(EJAB-1318) 2010-10-13 10:55:35 +02:00
Pablo Polvorin ce9ce8293b Merge branch 'master' of git+ssh://git@gitorious.process-one.net/ejabberd/mainline 2010-10-12 10:57:07 -03:00
Badlop 82a8dc7b3a Cosmetic code changes to support emacs indentation 2010-10-07 17:38:18 +02:00
Badlop 404b9a4a11 Minor fix in http_bind detected by Dialyzer 2010-10-07 00:16:24 +02:00
Badlop f4f2f46f50 Dirty fixes for Dialyzer warnings in mod_privacy 2010-10-07 00:14:28 +02:00
Badlop 6c74c67069 Fix Captcha library and MUC use for exmpp 2010-10-06 13:05:21 +02:00
Badlop 645ddcb749 Fix unused variables 2010-10-05 15:48:11 +02:00
Evgeniy Khramtsov 8647ca5f0b use one_queue IQ discipline by default 2010-10-05 21:32:47 +10:00
Christophe Romain ee861e650d fix dializer warnings (thanks to Karim Gemayel) 2010-10-04 17:41:59 +02:00
Badlop 349c44fcc0 Fix Edoc errors (thanks to Karim Gemayel) 2010-09-30 13:44:16 +02:00
Christophe Romain 78b8307a1f fix dializer warnings (thanks to Karim Gemayel) 2010-09-30 12:06:40 +02:00
Christophe Romain 7c580bbeed Merge branch 'master' of git+ssh://gitorious.process-one.net/ejabberd/mainline 2010-09-29 11:48:40 +02:00
Christophe Romain 6b7d73dcd5 fix dializer errors, improve documentation (thanks to Karim Gemayel)(EJAB-1260) 2010-09-29 11:48:19 +02:00
Badlop c57f726ecb Fix some Dialyzer warnings 2010-09-28 16:06:37 +02:00
Badlop 56b66ab64f Dialyzer fixes. Ensure all_table_hosts/1 returns only a list of binaries 2010-09-28 16:06:35 +02:00
Badlop 403690a498 Only install the guide.html files when it was compiled (EJAB-1311) 2010-09-28 16:06:32 +02:00
Christophe Romain f7dc4df784 Allow use with binary() Host from exmpp (thanks to Karim Gemayel) 2010-09-28 10:06:16 +02:00
Badlop 819dbdbf59 Move the extract_translations code to the tools dir (EJAB-1311) 2010-09-27 13:39:15 +02:00
Badlop 2293bd6855 Move the extauth example script to the tools dir (EJAB-1311) 2010-09-27 13:35:33 +02:00
Badlop caf07d09bf Remove files about obsolete transports (EJAB-1311) 2010-09-27 13:35:08 +02:00
Badlop b2d67df8d0 Remove Marshall T. Rose examples, superseded by supported examples (EJAB-1311) 2010-09-27 13:34:43 +02:00
Badlop 73c992c5af Delete compiled files from git; they are included in source package (EJAB-1311) 2010-09-27 13:31:50 +02:00
Badlop a46f02a136 Fix typo in type 2010-09-22 00:14:47 +02:00
Badlop 62b3b31b8d Allow webadmins to change roster of user (EJAB-72) 2010-09-21 17:05:50 +02:00
Evgeniy Khramtsov d4480c1361 fixes default value for cache_life_time 2010-09-21 04:32:42 +10:00
Christophe Romain 2e75faefae improve type specification 2010-09-20 16:54:37 +02:00
Badlop 9bde1dc9af Add missing needdb, use bare jid to get roster; now group and subs blocking works again (thanks to Andreas Köhler) 2010-09-17 21:06:30 +02:00
Andreas Köhler afac34de88 Discard unmatched INFO messages in ejabberd services.
This patch will stop services terminating with function clause messages,
but doesn't affect the message queue at all.
2010-09-17 19:28:35 +02:00
Christophe Romain 1cbfdce457 remove garbage configuration 2010-09-16 14:52:30 +02:00
Badlop cb953f949f Fix problems reported by Dialyzer 2010-09-15 20:04:35 +02:00
Christophe Romain 52deb16676 apply modification for the exmpp #jid{} record update 2010-09-15 12:16:03 +02:00
Badlop 89a98be605 Display priority, login time, pid and pid info in webadmin (EJAB-1300) 2010-09-13 17:49:55 +02:00
Badlop 813022aec1 Support timezone West of UTC (thanks to Edwin Fine)(EJAB-1301) 2010-09-13 12:07:35 +02:00
Pablo Polvorin 0d5f20cae1 Include roster pack patch from Geoff
Patch was already applied to 2.x branch, but not yet ported to master.
2010-09-10 15:32:19 -03:00
Christophe Romain 4b5b98b465 clean nodeid/nidx variables names (thanks to Karim)(EJAB-1000) 2010-09-10 19:45:28 +02:00
Evgeniy Khramtsov 556892aebf cache lifetime should be converted in microseconds 2010-09-08 02:37:01 +10:00
Evgeniy Khramtsov 7a3aa8f97d Implemented dirty (non-atomic) functions; added copyright notice 2010-08-31 18:07:24 +10:00
Evgeniy Khramtsov 1bd43bbd2d implemented backend-independed key-value cacheing table; applied to mod_caps.erl first 2010-08-30 14:32:48 +10:00
Pablo Polvorin 77d5eabd00 Update rosteritem table definition for mysql (gen_storage)
Previous definition do not work with gen_storage.
gen_storage creates the table when they don't exists, but if
they exists it simple uses that definition.

Note that the column values also had changed in gen_storage,
so instead of "B" for a bidirectional subscription, it must be
"both".  Keep this in mind when loading data into the DB
2010-08-27 14:17:04 -03:00
Badlop 9050aa1de0 Support exmpp's jid record, and require next exmpp release (EXMPP-41) 2010-08-27 15:36:29 +02:00
Evgeniy Khramtsov 445691bab1 fixes ampersand escaping (EJAB-1258) 2010-08-19 20:37:28 +10:00
Andreas Köhler d6722e353f Fix mod_offline:remove_old_messages/1. 2010-08-18 13:22:38 +02:00
Andreas Köhler b2d96d0753 Fix gen_storage:matchrules_transform_conditions/2 for =/=, and, andalso, or and orelse. 2010-08-18 13:22:37 +02:00
Andreas Köhler 7f1759ab0a Fix a ?DEBUG call in ejabberd_auth. 2010-08-18 13:22:34 +02:00
Badlop 3cb128963c Fix ejabberd_auth:get_vh_registered_users/2 (thanks to Andreas Köhler) 2010-08-18 13:22:30 +02:00
Badlop 555a3113a1 Fix EDoc error 2010-08-16 12:02:45 +02:00
Badlop dffb9cdaf9 Fix Dialyzer reports 2010-08-13 17:41:05 +02:00
Badlop 6e65f0694e New API to update host config on the fly (thanks to Juan Pablo Carlino)
Adds ejabberd_hosts:update_host_conf/2 to update a host with a new
configuration on the fly. Typically this is useful to enable / disable
specific modules for a given host without restarting the whole app.
Also fixes a problem with mod_disco, after config refreshing to include
global services if there are not locally available.
2010-08-11 23:31:30 +02:00
Evgeniy Khramtsov bee01cfd1e fixes typo for table copy 2010-08-10 19:44:45 +10:00
Badlop da866ed326 When user joins non-anonymous room, warn also in presence stanza (EJAB-310) 2010-08-07 21:26:22 +02:00
Badlop b0b98e8c63 Update the 'configure' script 2010-08-07 19:54:04 +02:00
Evgeniy Khramtsov 83e17a7c65 Make MD2 autodetected (EJAB-1285) 2010-08-07 22:28:48 +10:00
Badlop 771da0e1d6 Preliminary release notes for 3.0.0 2010-08-06 13:32:29 +02:00
Badlop 75d8d8a43e Fix minor typo in log message 2010-08-06 11:08:19 +02:00
Badlop 80610e62f8 Require the latest exmpp version released 2010-08-06 00:54:25 +02:00
Badlop fa9b8d63f9 Ensure the default virtual host "localhost" is defined and is the first 2010-08-05 22:19:41 +02:00
Badlop d4316558de When an obsolete ODBC module is starting, switch to the normal one 2010-08-05 00:49:58 +02:00
Christophe Romain 690857e0d4 enforce disco features results (thanks to Karim)(EJAB-1033, EJAB-1228, EJAB-1238) 2010-08-04 18:30:22 +02:00
Badlop 73705a3b2e Explain better what's the problem with the option clusterid 2010-08-04 14:03:33 +02:00
Evgeniy Khramtsov 7510a54f81 Loading ASN.1 driver explicitly to avoid races in LDAP (EJAB-1284) 2010-08-04 19:25:18 +10:00
Badlop 8235c9eea1 Change record() to tuple() so Dialyzer can run 2010-08-02 23:47:11 +02:00
Badlop 8cd32f9706 Change syntax of type declarations so Dialyzer accepts them 2010-08-02 23:45:51 +02:00
Badlop b28b9686fe Copy latest release notes from the 2.1.x branch 2010-08-02 17:53:30 +02:00
Badlop 72b9d8b250 Remove unused and useless SVN keywords 2010-08-02 16:03:05 +02:00
Badlop 6abfea6d8d Minor cosmetic change in clusterid description 2010-08-02 15:48:35 +02:00
Badlop d599aba9ca Fix example GSSAPI config 2010-07-31 01:09:47 +02:00
Badlop 02f19c0c1d Only start GSSAPI support when configured, and when esasl is found 2010-07-31 01:08:11 +02:00
Badlop 3181685158 Support parallel extauth script (thanks to Jesse Thompson)(EJAB-1280) 2010-07-30 20:34:01 +02:00
Badlop f93c6c2b35 Copy translations from 2.1.x branch, and update 2010-07-30 16:50:03 +02:00
Badlop a134626849 Fix some English strings 2010-07-30 16:49:31 +02:00
Badlop 31198d6c63 Fix regexp call 2010-07-30 16:49:04 +02:00
Badlop 92dc45ad76 Don't call modules that were obsoleted by GS 2010-07-30 13:22:03 +02:00
Badlop 8a5b08e3f0 New access option in mod_roster to disable changes (EJAB-72) 2010-07-30 13:21:58 +02:00
Badlop 1a368436b4 Use the term 'room' instead of 'chatroom' and 'conference' 2010-07-30 00:06:19 +02:00
Badlop 59a19ca87a Don't offer SASL auth before doing TLS if TLS is required (thanks to Etan Reisner)
Originally reported in
http://yo.jabber.ru/bugzilla/show_bug.cgi?id=251

Implements:
http://tools.ietf.org/html/rfc3920#section-6.2
If Use of TLS (Section 5) needs to be
established before a particular authentication mechanism may be used, the
receiving entity MUST NOT provide that mechanism in the list of available SASL
authentication mechanisms prior to TLS negotiation.
2010-07-29 23:14:03 +02:00
Badlop e653598cd0 Allow mod_caps and shared_roster to start, they don't really need to use GS 2010-07-29 20:35:30 +02:00
Badlop 891c9610e9 Remove support to migrate mod_muc from ejabberd 0.7.5 or older 2010-07-29 20:24:46 +02:00
Badlop 9265c23e1a Don't say v1.2, because that number is never increased and is confusing 2010-07-28 20:00:47 +02:00
Badlop 11130806f9 Return Registered element when account exists (thanks to PioneerMike) 2010-07-28 19:48:06 +02:00
Badlop 0d065dd021 Fix Edoc comments 2010-07-23 13:36:35 +02:00
Badlop f5dc8d2f78 Document GSSAPI (EJAB-831) 2010-07-23 01:23:39 +02:00
Badlop 07e459d577 Various fixes (EJAB-831) 2010-07-23 01:23:37 +02:00
Badlop aa791ad0c4 Support SASL GSSAPI authentication (thanks to Mikael Magnusson)(EJAB-831) 2010-07-23 01:23:35 +02:00
Badlop 17fc992ba9 Recompile the guide and configure 2010-07-23 00:30:52 +02:00
Badlop 115392ff2d Add MH and GS specific options to ejabberd.cfg.example 2010-07-23 00:30:45 +02:00
Badlop b1545d1d7d Document GS in the Guide, undocument the mod_*_odbc 2010-07-23 00:30:43 +02:00
Badlop 9e2d614b41 Update ejabberd version from 3.0.0-prealpha to 3.0.0-alpha-x 2010-07-23 00:30:41 +02:00
Badlop 917c5edfe5 Mark as obsolete the modules that use odbc instead of GS 2010-07-23 00:30:37 +02:00
Badlop 1285bd52c9 Fix ejabberd_odbc code 2010-07-23 00:30:33 +02:00
Badlop 597c1c87d4 Fix ejabberd modules 2010-07-23 00:30:32 +02:00
Badlop 58bed2cbff Fix core files 2010-07-23 00:30:31 +02:00
Badlop 13fad04d14 Fix GS 2010-07-23 00:30:29 +02:00
Badlop eb2ad7e699 Patch modules for GS (thanks to Stephan Maka) 2010-07-23 00:29:40 +02:00
Badlop 511f73812d Patch core for GS (thanks to Stephan Maka) 2010-07-23 00:29:36 +02:00
Badlop a7d9fa7301 New files for GS (thanks to Stephan Maka) 2010-07-23 00:29:34 +02:00
Badlop bb77c39553 Patch ODBC modules for MH (thanks to Alexey Shchepin and Geoff Cant) 2010-07-23 00:29:32 +02:00
Badlop a1a6bd79ac Patch mnesia modules for MH (thanks to Alexey Shchepin and Geoff Cant) 2010-07-23 00:29:30 +02:00
Badlop cdb379a22c Patch core for MH (thanks to Alexey Shchepin and Geoff Cant) 2010-07-23 00:29:28 +02:00
Badlop 9336356efd New files for MH (thanks to Alexey Shchepin and Geoff Cant)
Thanks to:
Alexey Shchepin for planning and developing MH in late 2007
Geoff Cant for improving during 2008 and 2009
Christophe Romain and Badlop for merging into master in 2010
2010-07-23 00:29:26 +02:00
Badlop 8e9888c411 When logging s2s out connection attempt or success, log if TLS is used 2010-07-23 00:27:26 +02:00
Badlop 027418aba5 The command Update now returns meaningful message and exit-status (EJAB-1237) 2010-07-22 16:38:04 +02:00
Christophe Romain f36da63a3a Allow roster change from external component (TECH-1001) 2010-07-22 11:06:51 +02:00
Christophe Romain 5bc9860f5d add ejabberdctl ability to check epmd names (TECH-1121) 2010-07-20 14:05:18 +02:00
Badlop c237570bc2 Describe what a user gets when he hits the registration_timeout limit 2010-07-19 12:13:00 +02:00
Badlop 0dcbe10a22 Only compile etop_tr.erl when running: make debugtools=true 2010-07-19 12:12:30 +02:00
Badlop 581f011b28 Fix warning about unused variable 2010-07-19 12:11:10 +02:00
Christophe Romain fb2c74c4aa add missing hrl 2010-07-16 18:55:58 +02:00
Christophe Romain 8dbd6007ed Add etop command to ejabberdctl 2010-07-16 16:24:55 +02:00
Evgeniy Khramtsov c9faa5bde7 correct handling of SQL boolean types (EJAB-1275) 2010-07-14 21:57:32 +10:00
Christophe Romain de6675a433 Added catches to reset_stream calls to avoid errors during a race condition (thanks to Aleksey Shchepin) 2010-07-13 22:13:38 +02:00
Christophe Romain 81d364a97a Make chat room destroy and create being sync_dirty to limit mnesia overload. (thanks to Mickael Remond) 2010-07-13 22:09:48 +02:00
Christophe Romain 02b7ba50fe Try forcing usage of cache for all MySQL sessions, and add correct timeout on odbc driver query. (thanks to Mickael Remond) 2010-07-13 22:08:16 +02:00
Christophe Romain e64d69350f Add rate limit command to ejabberd_listener. You can now limit the max number of TCP connects per second on a given port. (thanks to Mickael Remond) 2010-07-13 22:07:43 +02:00
Badlop 2b48732de4 Fix my flock change from last friday 2010-07-12 18:53:28 +02:00
Badlop 29e626bf80 Remove ejabberd_debug because p1_prof provides similar and better features 2010-07-12 16:03:47 +02:00
Badlop 2e13a56ca9 Only compile and install p1_prof when: make debugtools=true 2010-07-12 16:03:44 +02:00
Badlop 976baccceb Raise requirement to Erlang/OTP R12B-5 (EJAB-953) 2010-07-12 15:21:31 +02:00
Badlop f8412d7c5d When using OTP R14, use public_key library instead of old ssl (EJAB-953) 2010-07-12 13:58:10 +02:00
Badlop 5a8d99232c Mention missing modules in the overview table 2010-07-11 12:21:57 +02:00
Badlop fe70217703 Some systems delete the lock dir; in such case don't use flock at all 2010-07-09 22:40:32 +02:00
Evgeniy Khramtsov 20f6e4714e Added functions to collect statistics about queues, memory, reductions etc. Several cleanups 2010-07-10 01:37:28 +10:00
Evgeniy Khramtsov b76eba62ea New ejabberd profiler 2010-07-05 13:46:49 +10:00
Badlop 5b6351577a Fix print of command result that contains ~ (thanks to Tsukasa Hamano) 2010-07-03 00:45:46 +02:00
Badlop 894f0abdfa Prevent Dialyzer warnings about case inside macro 2010-07-02 23:40:51 +02:00
Badlop c89944fe12 Don't handle useless case of Affiliation none 2010-07-02 23:40:51 +02:00
Badlop fe1a4908b5 Move deeply nested cases to functions, and fix affiliation changes. 2010-07-02 23:40:51 +02:00
Evgeniy Khramtsov d60ef4c212 Use ets insead of asking supervisor in ejabberd_odbc_sup:get_pids/1 (Thanks to Alexey Shchepin) 2010-07-03 00:35:34 +10:00
Badlop 5161a9d4e8 Show some more room options in the log file 2010-07-02 15:21:05 +02:00
Badlop eb0dc4f4ca Document the mod_muc option captcha_protected 2010-07-02 13:09:11 +02:00
Badlop 6b9a523dc9 Recompile the Guide and Configure 2010-07-01 17:08:17 +02:00
Badlop 3e97054390 Requirement of OpenSSL increased from 0.9.6 to 0.9.8 2010-07-01 17:06:25 +02:00
Badlop 69d10702ee Fix typo in --enable-transient_supervisors 2010-07-01 17:05:24 +02:00
Christophe Romain 455107ff5f fix some dialyzer warnings on pubsub (EJAB-1260) 2010-07-01 11:19:48 +02:00
Badlop 5ca3f221cc Fix privacy check when serving local Last (thanks to Brian Acton)(EJAB-1271) 2010-06-29 11:59:16 +02:00
Badlop 7ffe06c77f Fix binary Host argument 2010-06-28 13:54:43 +02:00
Badlop bdea5d3598 Fix problem when FIREWALL_WINDOW options for erl kernel were used 2010-06-28 13:18:48 +02:00
Badlop a07eb3e023 Fix missing closing right parenthesis in define 2010-06-28 12:23:18 +02:00
Badlop c3ef12debb Inform client that SSL session caching is disabled (thanks to Pawel Chmielowski) 2010-06-25 18:33:59 +02:00
Badlop 739412119e Don't ask for client certificate when using tls (EJAB-1267) 2010-06-25 18:33:56 +02:00
Badlop 90d9ed1ee4 OpenSSL is required, not optional 2010-06-25 16:59:15 +02:00
Badlop 7d96d831c1 Fix Edoc typo 2010-06-25 00:03:38 +02:00
Badlop b2eb9bc512 Fix some binary variables 2010-06-24 00:22:26 +02:00
Badlop 71fc696f81 When account is deleted, delete also member of stored shared rosters. 2010-06-24 00:04:02 +02:00
Evgeniy Khramtsov 234280ddc7 now admins are able to see private rooms in disco (EJAB-1269) 2010-06-23 17:51:05 +10:00
Badlop 7a76cabe26 Varied fixes in mod_muc_room 2010-06-22 00:11:41 +02:00
Badlop a610d8b699 Several fixes about binary in mod_muc_room 2010-06-22 00:11:41 +02:00
Badlop 98a78b7955 Several fixes about binary in mod_muc 2010-06-22 00:11:41 +02:00
Badlop 493d3bc7aa Fix language string 2010-06-22 00:11:41 +02:00
Badlop ac6ae9e8dd Fix xmlcdata binary content 2010-06-22 00:11:41 +02:00
Badlop a6c0a3d59b Fix exmpp parser options 2010-06-22 00:11:41 +02:00
Badlop 0b5bcaf74a Remove some unused cases clauses 2010-06-22 00:11:41 +02:00
Badlop 3ee28ef7cc Throw a meaningful error when the URL can't be parsed 2010-06-22 00:11:41 +02:00
Badlop 3f68689367 Handle when username in shared roster members is undefined 2010-06-22 00:11:41 +02:00
Badlop 6fc578f2ee Use string instead of binary for body content 2010-06-22 00:11:41 +02:00
Badlop cd4c730b9c Fix pattern match 2010-06-22 00:11:41 +02:00
Evgeniy Khramtsov b0b66be747 Added md2/1 support 2010-06-22 02:57:58 +10:00
Evgeniy Khramtsov e04a690303 New OpenSSL functions wrapper: sha224/1, sha256/1, sha384/1, sha512/1 2010-06-22 02:34:27 +10:00
Badlop bc44a3584f Fix detection of push roster item unsubscribed 2010-06-18 21:24:52 +02:00
Badlop 5e986442a2 Remove duplicate function from mod_roster 2010-06-18 21:24:52 +02:00
Badlop 19ad0eb238 Fid mod_roster_odbc binary arguments 2010-06-18 21:24:52 +02:00
Badlop fe4944e031 Provide iq instead of xmlel in roster webadmin changes 2010-06-18 21:24:51 +02:00
Badlop a51df8db6e Fix build of blank JID 2010-06-18 21:24:51 +02:00
Badlop b605295f9d Fix call to exmpp_stanza:error 2010-06-18 21:24:51 +02:00
Badlop dd69d47543 Fix xmlcdata binary content 2010-06-18 21:24:51 +02:00
Badlop 3b7449fb92 Fix result IQ vcard stanza 2010-06-18 21:24:51 +02:00
Badlop 0514ccb047 Remove function clause that is never called 2010-06-18 21:24:51 +02:00
Badlop cab6ee9d86 Fix some exmpp calls 2010-06-18 21:24:51 +02:00
Badlop 63032e1397 Fix xmlcdata type 2010-06-18 21:24:51 +02:00
Badlop 8cef084bd2 New mod_echo option client_version for the educational example 2010-06-18 21:24:51 +02:00
Badlop 6942d0bcc3 Remove in mod_caps handle of unused md5 hash 2010-06-18 21:24:51 +02:00
Badlop 979c2b5a74 Fix binary arguments 2010-06-18 21:24:51 +02:00
Badlop a62a9b6460 Remove unused function, and unused os:type return 2010-06-18 21:24:51 +02:00
Badlop 67da88f0bd Improve ejabberd's broadcast stanzas to satisfy #xmlel type 2010-06-18 21:24:51 +02:00
Badlop 4fd7ec27f5 OTP doc says the Command in the open_port spawn tuple must be string() 2010-06-18 21:24:51 +02:00
Badlop 19a8b79342 Improve handle of inet:gethostbyname return 2010-06-18 21:24:51 +02:00
Badlop be111b6749 More remove support for XEP-0018 (EJAB-810) 2010-06-18 21:24:51 +02:00
Badlop b6711e407e Remove support for the rejected XEP-0018 Invisible Presence (EJAB-810) 2010-06-17 22:43:15 +02:00
Badlop 3bcc60066e Throw error when tls has no_certfile, instead of returning error tuple 2010-06-17 22:39:01 +02:00
Badlop 8d783bae15 Fix roster webadmin display 2010-06-17 15:55:33 +02:00
Badlop e0bdbcf063 Fix exmpp bug in mod_pubsub_odbc 2010-06-17 15:55:06 +02:00
Badlop f32332cdfc Rebuilt the configure script with: autoconf 2010-06-16 16:06:44 +02:00
Peter Lemenkov 399bb31e13 Pass correct version to autoreconf
It seems that AC_INIT macro is wrongly initialized. See this link
for explanation of a particular AC_INIT variables:

http://www.gnu.org/software/autoconf/manual/html_node/Initializing-configure.html

Briefly, AC_INIT macro should be populated with the following data:

AC_INIT (package, version, [bug-report], [tarname], [url])

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2010-06-16 16:06:16 +02:00
Peter Lemenkov eae5d1b764 Install COPYING file along with other docs
It's a generally good idea to provide file with licensing terms.

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2010-06-16 16:06:14 +02:00
Peter Lemenkov 1459cb8a56 Install dev.html, and guide.pdf if it exists
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2010-06-16 16:06:11 +02:00
Christophe Romain 53638d094a remove outdated and useless file, use ejabberdctl.template instead 2010-06-16 12:20:46 +02:00
Badlop 8d3fd94d7d Log error when HTTP request has ambiguous Host header (EJAB-1261) 2010-06-16 11:45:13 +02:00
Badlop e27dda3ff1 Fix for Erlang R12, that doesn't support: true andalso ok 2010-06-15 23:01:13 +02:00
Jerome Sautret 1142cdad1b Discard queued requests that are too old (the caller has already got a timeout).
(cherry picked from commit 0e5b930b22)
2010-06-11 16:38:19 +02:00
Christophe Romain 2028698336 Fix bad pattern matching on undefined resource 2010-06-10 18:26:21 +02:00
Badlop 5d1d797330 Explain that 2 LDAP connections are established per vhost 2010-06-10 15:03:30 +02:00
Christophe Romain a67539075f prevent pubsub filtering too much packets 2010-06-10 14:25:46 +02:00
Badlop 75053cf40d Fix to push new contacts to connected users 2010-06-10 13:45:46 +02:00
Badlop cbf06b4785 Fix to not send roster contact from oneself 2010-06-10 13:14:09 +02:00
Badlop cc7ecfb39e Support anonymous accounts in Shared Roster @all@ directive (EJAB-1264)
With this change, logged anonymous accounts are considered to be registered.
2010-06-10 12:22:27 +02:00
Badlop 04943ca469 Fix bug creating anonymous mnesia table 2010-06-10 12:17:31 +02:00
Badlop 89f99c4251 Fix Dialyzer errors in ejabberd_ctl 2010-06-10 00:52:51 +02:00
Badlop 1a6c162371 Fix Dialyzer errors in auth modules 2010-06-10 00:52:38 +02:00
Evgeniy Khramtsov ead2655a62 fixes some badmatches and calls to undefined functions (part of EJAB-1260) 2010-06-09 15:56:33 +10:00
Badlop 526912756b Fix warnings about unused variables 2010-06-08 21:29:53 +02:00
Badlop aa176917fa Fix typo in previous pubsub commit 2010-06-08 21:29:39 +02:00
Badlop be25c5ada7 Fix export to SQL 2010-06-08 21:16:41 +02:00
Badlop d2dee01f7c Don't delete offline messages in mnesia when exporting to PIEFXIS 2010-06-08 18:56:10 +02:00
Badlop b9e79aac6c Fix IQ records 2010-06-08 18:56:09 +02:00
Badlop 2e9f3d3308 Fix call to mod_offline 2010-06-08 18:56:08 +02:00
Badlop 39e18e3738 Fix JID conversion, useful for mod_offline update from 2.1.x to 3.0 2010-06-08 18:56:07 +02:00
Christophe Romain baef586581 fix unexported function calls 2010-06-08 15:57:36 +02:00
Badlop db17504c82 Don't hide the erlang node when using ejabberdctl debug 2010-06-07 22:40:11 +02:00
Badlop 85e59c14d2 New argument --erlargs to pass arguments to erl 2010-06-07 22:40:10 +02:00
Badlop d48b4f2438 Fix typo in update_list command (EJAB-1237) 2010-06-07 15:58:26 +02:00
Badlop 6925f388e7 Fix previous commit (EJAB-1257) 2010-06-07 13:48:20 +02:00
Badlop bc1b4163a2 New optional BOSH connection attribute process-delay (EJAB-1257) 2010-06-07 13:45:05 +02:00
Badlop 4e459b9466 Fix call to the proper API function 2010-06-03 12:29:44 +02:00
Badlop e3e888b8de Fix crash because JID is a 3-tuple 2010-06-03 12:19:52 +02:00
Badlop b1dfb4b5f2 Clarify in the Guide that mssql configuration is similar to odbc 2010-06-02 17:34:40 +02:00
Christophe Romain 2f372261d3 sync last changes in pubsub_odbc patch 2010-06-02 16:47:03 +02:00
Evgeniy Khramtsov 2187bccc38 consistent hashing support. WARNING: update exmpp before running this 2010-06-03 00:01:36 +10:00
Christophe Romain 6c0c30c032 final fix on created node notification (EJAB-1225) 2010-06-02 14:38:04 +02:00
Christophe Romain 166e742b3c can not use unexpected-request with 'cancel' type 2010-05-28 16:27:04 +02:00
Christophe Romain 76447a8810 fix error code when unsubscribing from a non-existent node (needs exmpp from e8f1096) (EJAB-1227) 2010-05-28 14:25:06 +02:00
Christophe Romain 0232f5958f send created node notifications (EJAB-1225) 2010-05-28 13:27:28 +02:00
Christophe Romain e042fdb111 fix cached_item issue with PEP 2010-05-28 13:17:36 +02:00
Christophe Romain 01855b4e32 make last_item_cache feature cluster aware (EJAB-1234) 2010-05-28 11:32:51 +02:00
Badlop 9275a0020e Handle error response from auth modules (thanks to Eric Liang) 2010-05-28 01:36:27 +02:00
Badlop fbc8466c3c Makefile with optional ejabberd_debug.erl compilation (EJAB-1242)
Only compile and install ejabberd_debug.erl when running:
 make ejabberd_debug=true
2010-05-28 00:48:29 +02:00
Badlop bd69e3ad6c Remove useless loop and clean prepare_response (thanks to Christopher tofu Zorn)
1. Remove the silly loop that isnt needed,
   this speeds up all requests by 100 milliseconds.

2. Clean up prepare response function and add two new functions to
   handle out going payloads based of whether its a new session or not.
2010-05-28 00:40:07 +02:00
Badlop 3b963c4f18 Add created_at column also to PostgreSQL schema (thanks to Mathias Ertl)(EJAB-1240) 2010-05-26 16:13:55 +02:00
Badlop 72b2209c3e Mix the commands update_all/0 and update_module/1 into update/1 (EJAB-1237) 2010-05-25 20:02:29 +02:00
Badlop 75c5803431 New ejabberd commands to update modified modules (EJAB-1237) 2010-05-24 13:56:52 +02:00
Badlop d03eacd160 Only log when script errors are found 2010-05-24 13:54:25 +02:00
Christopher tofu Zorn c13df5645e typo on exported function 2010-05-20 20:45:57 +02:00
Christopher tofu Zorn a76d3d46fc expose more functions so developers can implement prebinding methods 2010-05-20 20:32:56 +02:00
Badlop e5535c80da Document mod_multicast, and add module disabled to default config 2010-05-20 00:08:43 +02:00
Badlop 41484213fd Use multicast in C2S presence broadcast (EJAB-267) 2010-05-20 00:03:05 +02:00
Badlop a4cf03dbf0 Use multicast in MUC groupchat messages (EJAB-266) 2010-05-20 00:03:04 +02:00
Badlop 8935da5b5c Service for XEP-0033: Extended Stanza Addressing (EJAB-265) 2010-05-20 00:03:02 +02:00
Badlop 9c12790011 New ejabberd router for multicast packets (EJAB-329) 2010-05-20 00:03:00 +02:00
Christophe Romain bc963e7855 fix EJAB-1233 on pubsub_odbc patch 2010-05-19 11:03:20 +02:00
Christophe Romain 877a864ba3 remove useless binding 2010-05-19 10:43:07 +02:00
Christophe Romain 033bec01e3 prevent orphaned pubsub node (EJAB-1233) 2010-05-19 10:42:49 +02:00
Christophe Romain 5f89f481e4 fix hometree<->flat change 2010-05-18 17:29:09 +02:00
Christophe Romain 95057c1182 finish port to exmpp calls on jid transformation 2010-05-18 15:20:41 +02:00
Christophe Romain f6e4d95c6f PubSub: node_flat becomes default plugin (thanks to Karim Gemayel)(EJAB-1077) 2010-05-17 22:09:01 +02:00
Christophe Romain 4409c49494 fix create_node_permission using binary() instead of string() 2010-05-17 12:52:43 +02:00
Badlop f32b394a96 Fix English typos 2010-05-17 11:56:51 +02:00
Christophe Romain c09df6cf93 fix pubsub->pubsub_odbc patch 2010-05-17 11:11:33 +02:00
Christophe Romain 497911fc5d accept pubsub publish using normal message 2010-05-17 10:31:53 +02:00
Christophe Romain 46ac8f97eb Add pubsub#type node config (EJAB-1083) 2010-05-12 14:51:38 +02:00
Christophe Romain 0964724b2a sync pubsub_odbc with latest code 2010-05-12 13:54:21 +02:00
Christophe Romain ccc684b095 Enforce pubsub#show_values subscription option (EJAB-1096)(thanks to Karim Gemayel) 2010-05-12 13:46:34 +02:00
Christophe Romain 2f075b7b77 Add pubsub#notify_sub node option (EJAB-1230)(thanks to Karim Gemayel) 2010-05-12 12:01:54 +02:00
Christophe Romain e1dd9ed875 fix unsubscribing with SubID (thanks to Karim Gemayel) 2010-05-12 11:47:43 +02:00
Badlop e7d70933ac Show HTTP auth username and IP address in logs, not the password (EJAB-1231) 2010-05-12 10:28:01 +02:00
Badlop 611a9c0136 Fix EDoc errors 2010-05-11 13:15:33 +02:00
Badlop 834ca8a08d Show vCard size in WebAdmin, allow to delete it, allow to view the vCard 2010-05-11 01:22:20 +02:00
Badlop 34bc4da8d8 Fix vcard removal 2010-05-11 01:22:18 +02:00
Badlop 3727e2426d Catch error when auth crashes 2010-05-11 01:22:17 +02:00
Badlop 7aa5e8f435 Don't show HTTP request in logs, because reveals password (EJAB-1231) 2010-05-10 23:23:38 +02:00
Badlop 6129065cfa Show parsing error in debug log message 2010-05-10 22:45:24 +02:00
Badlop 86eebc21b4 More fixes in BOSH, it seems to work now 2010-05-10 22:44:55 +02:00
Badlop 56f5a7846f Fix binary conversion when removing user in mod_pubsub 2010-05-10 17:01:20 +02:00
Badlop bb4dae26da Optionally cache extauth users in mnesia (EJAB-641) 2010-05-10 16:43:39 +02:00
Badlop 2afce7822f Use a standard method to get a random seed (EJAB-1229) 2010-05-10 15:39:20 +02:00
Badlop e249a21f83 Fix warning 2010-05-10 15:10:24 +02:00
Badlop 2331e23f49 New option pam_userinfotype to provide username or JID (EJAB-652) 2010-05-10 15:08:21 +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 3f6579ffbc new option ldap_tls_verify is added (EJAB-1229) 2010-05-10 19:57:40 +10:00
Evgeniy Khramtsov 92ec42565e full support for XEP-0115 v1.5 (EJAB-1223) (EJAB-1189) 2010-05-10 16:00:30 +10:00
Christopher tofu Zorn f84a1c88cf Change max inactivity from 30 to 120 seconds 2010-05-06 20:55:08 +02:00
Christopher tofu Zorn a1205f347f Use dirty_delete when removing the session.
There is no need for a transaction and has less overhead
2010-05-06 20:55:03 +02: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 4d1dfe8914 Indicate explicitly what nodes are handled by mod_configure 2010-05-04 11:40:35 +02:00
Christophe Romain dc4d72cf77 Let PubSub check the namespace of the published root payload element 2010-05-03 14:35:49 +02:00
Badlop 57ffba34c2 New page Miscelanea Options 2010-05-03 13:59:18 +02:00
Christophe Romain 2f97ef8b81 Enforce pubsub#presence_based_delivery (EJAB-1221) (thanks to Karim Gemayel)
this commit also sync pubsub_odbc back to latest pubsub
2010-04-29 12:54:35 +02:00
Emilio Bustos 4548f2faf0 Fixed Bugs handling Service Discovery to contacts (EJAB-1207) 2010-04-29 00:38:25 -03:00
Badlop f01dd3e942 Fix Edoc comment 2010-04-28 20:15:15 +02:00
Badlop 53a5b602dc New Access rule webadmin_view for read-only (thanks to Oleg Palij)(EJAB-213) 2010-04-27 23:27:24 +02:00
Christophe Romain b49dd8b8c4 fix node path format, must be binary() 2010-04-27 19:08:56 +02:00
Badlop 4c147c5f29 Don't store blocked messages in offline queue (thanks to Brian Acton)(EJAB-1224) 2010-04-27 13:29:05 +02:00
Badlop 9820880cd5 Automatic vcard avatar addition in presence (thanks to Igor Goryachev)(EJAB-208) 2010-04-27 12:33:38 +02:00
Badlop 8713465df1 No need to handle IQ requests other than Get and Set 2010-04-22 20:15:45 +02:00
Badlop cb9b97411b Rename mod_muc_log option spam_prevention to link_nofollow (EJAB-1141) 2010-04-21 18:58:03 +02:00
Badlop 069ad5332d Update WebAdmin logo to ejabberd 3. 2010-04-21 15:50:01 +02:00
Badlop 1d7daab4e8 Don't send error stanza as reply to error stanza (EJAB-930) 2010-04-20 20:31:17 +02:00
Badlop 6cdfec1284 Fix support for registration from C2S connections 2010-04-19 16:08:01 +02:00
Badlop ab77bb5466 Recompile the Guide 2010-04-19 15:20:45 +02:00
Evgeniy Khramtsov c8f5585f3b added notes about LDAP password change 2010-04-19 23:10:22 +10:00
Evgeniy Khramtsov e117ce1b7b allow inband password change (EJAB-199) 2010-04-19 21:05:19 +10:00
Badlop b0d5ac0b33 Minor fixes in listeners options list 2010-04-19 11:57:16 +02:00
Evgeniy Khramtsov 5bb22101e2 LDAP extensible match support (EJAB-722) 2010-04-19 14:14:26 +10:00
Badlop f70ebd6983 Allow definition of local address for outgoing s2s (EJAB-418) 2010-04-15 01:04:40 +02:00
Badlop 5cb10cf9fa Fix outgoing s2s 2010-04-14 21:08:24 +02:00
Badlop 3259c1c2ea Update some HTTP-Bind to work with exmpp; but doesn't work yet. 2010-04-14 16:50:32 +02:00
Badlop 58a4b594db Update calls of old xml_stream and xml, to exmpp. 2010-04-14 16:45:37 +02:00
Badlop 7471d49b5a Fix roster display in WebAdmin 2010-04-14 16:42:29 +02:00
Badlop 67cced15b9 Fix calls to register_feature 2010-04-14 01:08:22 +02:00
Badlop 7fffae5b1a Rename some JEP references to XEP 2010-04-14 01:00:14 +02:00
Badlop bda56552eb Fix management of disco_features and disco_extra_domains 2010-04-14 00:57:56 +02:00
Badlop d2104ba4e1 Reduce verbosity of log when captcha_cmd is checked but not configured. 2010-04-12 13:33:13 +02:00
Pablo Polvorin 3581b137e1 Remove warning for undefined print_state/1 function for p1_fsm processes.
Include a identity function as implementation of print_state/1.
2010-04-09 14:18:44 -03:00
Christophe Romain 44abf1ff28 fix subscriptions, subscribe, and configure options (thanks to Karim Gemayel) 2010-04-08 13:58:47 +02:00
Badlop 7814527e0d Bugfix for starting with a clean caps table (thanks to Karim Gemayel) 2010-04-07 12:50:47 +02:00
Badlop 57d5bc693c Add xml default content type (thanks to Aaron Winborn)(EJAB-14214) 2010-04-06 23:04:28 +02:00
Emilio Bustos b85b63018d Move SQL queries from vcard_odbc to odbc_queries. 2010-03-31 16:33:18 -03: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
http://github.com/erlyvideo/erlyvideo/commit/b01d15abc3189226dbf824db19db22da35fa33a0#diff-0
2010-03-30 16:44:39 -03:00
Badlop da50d95873 Refactor code to reduce calls to get_affiliation and get_role (thanks to Steam)(EJAB-1038) 2010-03-29 20:49:22 +02:00
Christophe Romain 2f899ba76f purge_offline and get/set affiliation bugfix 2010-03-22 20:27:13 +01: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
Mickael Remond 6d9094ceca Move HTTP session timeout log from warning level to info. Timeout can be generated when user close the browser for example. 2010-03-14 10:30:01 +01:00
Christophe Romain d50fc6728e improve remove_user (EJAB-1172) 2010-03-11 16:07:56 +01:00
Peter Lemenkov c316bfae25 More compliance with LSB
The init-script shall return 4 in case then user doesn't have sufficient privileges for action.
See http://refspecs.freestandards.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2010-03-08 22:41:14 +01:00
Christophe Romain 37a23e69d7 allows PEP to send to bare jid on s2s 2010-03-08 15:35:19 +01:00
Badlop 13412129ec Document mod_sic (EJAB-1205) 2010-03-08 13:59:06 +01:00
Badlop 94257c3e4b Implement XEP-0279: Server IP Check (thanks to Karim Gemayel)(EJAB-1205) 2010-03-08 13:58:53 +01:00
Badlop 4dc48da638 Replace concat_binary supported until R14 with list_to_binary supported since R9 2010-03-08 12:53:37 +01:00
Badlop 002104c62e Catch errors when exporting to PIEFXIS file (EJAB-1178) 2010-03-08 11:16:33 +01:00
Badlop 3844883321 Recompile the Guide 2010-03-08 11:16:05 +01:00
Evgeniy Khramtsov fb64d79379 ldap_dn_filter option is documented; now fetching only needed attributes in LDAP search requests (EJAB-1204) 2010-03-08 16:51:24 +09:00
Evgeniy Khramtsov 9d2fd3e52c now using "%u" pattern as default for ldap_uids (EJAB-1203) 2010-03-08 14:08:22 +09:00
Christophe Romain 7d497615a1 add extended stanza addressing 'replyto' on PEP (EJAB-1198) (thanks karim) 2010-03-05 18:33:12 +01:00
Christophe Romain fe40651b0d add pubsub#purge_offline (EJAB-1186) (thanks karim) 2010-03-05 16:09:06 +01:00
Christophe Romain 3c36cd64e3 fix pubsub#title option (EJAB-1190) (thanks karim) 2010-03-05 15:45:31 +01:00
Christophe Romain 7d97830ad7 mod_caps optimizations (thanks evgeniy) 2010-03-05 15:38:44 +01:00
Denis Kurochkin a1fe809197 MSSQL support was broken (EJAB-1201) 2010-03-05 14:46:17 +01:00
Christophe Romain 236423d058 fix: subscribe, unsubscribe, last published item (thanks karim) 2010-03-05 13:50:51 +01:00
Evgeniy Khramtsov c8c7169465 improved s2s connections clean up (EJAB-1202) 2010-03-04 12:43:43 +09:00
Badlop 64f8cf8a9e Clarify in Displayed Groups label that it expects IDs. 2010-03-01 11:44:02 +01:00
Badlop c99de764bc Add quotes in documentation of some erl arguments (thanks to Vincent Courcelle)(EJAB-1191) 2010-02-25 00:06:13 +01:00
Badlop c9463e3308 Fix resending authorization problem 2010-02-24 13:14:53 +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 3e6acdfb4a Fix typos in example config comments (thanks to Florian Zumbiehl)(EJAB-1192) 2010-02-22 13:40:19 +01:00
Badlop ebc82f2968 Use alternative of file:read_line/1 to not require R13B02 2010-02-20 19:31:57 +01:00
Evgeniy Khramtsov 9890cc89b6 get rid of queue:filter/2 to keep compatibility with older Erlang versions 2010-02-20 20:14:34 +09:00
Evgeniy Khramtsov 62ad40b1e4 now using mnesia:async_dirty when cleaning table from failed node 2010-02-19 16:41:13 +09:00
Badlop ca1ac76108 Reduce verbosity of HTTP Binding log messages (thanks to Alexey Shchepin) 2010-02-19 00:08:04 +01:00
Badlop ceb377621e Recompile guide.html 2010-02-18 22:25:36 +01:00
ekhramtsov d70e92d781 improved explanation of "max_fsm_queue" option; included this option in ejabberd.cfg.example 2010-02-18 15:42:59 +09:00
ekhramtsov c0a0bae91e option "access_from" is now documented (EJAB-1187) 2010-02-18 15:00:40 +09:00
ekhramtsov e7c93ae68d new option "hostname" is added (thanks to Stefan Hepp) (EJAB-838) 2010-02-17 23:58:53 +09:00
Badlop 55986739c9 Update namespaces to match exmpp_nss.hrl (thanks to Karim Gemayel)(EJAB-1179)
This requires a recent exmpp from Git. Once released, it'll require exmpp 0.9.3
2010-02-16 17:33:53 +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
Badlop 23d008cd79 Remove references to the old SVN repository. 2010-02-16 12:00:05 +01:00
Badlop 5a82e3ac70 Rewrite mnesia counter functions to use dirty_update_counter (EJAB-1177)
(thanks to Juan Pablo Carlino and Alexey Shchepin)
2010-02-15 23:38:08 +01:00
Badlop 4117a5e856 New command to set master Mnesia node 2010-02-15 23:25:02 +01:00
Badlop 6cf078ae83 Shared roster gets contact nickname from vcard, when available (EJAB-114) 2010-02-15 22:47:38 +01:00
Badlop 27be3b400e Cross-domain HTTP-Bind support (thanks to Jack Moffitt)(EJAB-1168) 2010-02-15 22:39:32 +01:00
Badlop fa4ebab036 Fix cluster race condition in route read (thanks to Alexey Shchepin) 2010-02-15 18:37:42 +01:00
Badlop df2878739c Improve TTY code to work on more operating systems (thanks to Jan Koum) 2010-02-12 22:11:22 +01:00
Badlop cab98b3fd5 Added support for Jot in ctl and TTY in debug (thanks to Jan Koum) 2010-02-12 20:52:31 +01:00
Badlop 60ffcd78f1 Minor fixes in the new ejabberdctl flock code 2010-02-12 20:25:20 +01:00
Martin Langhoff 6557136426 ejabberdctl: support concurrent connections with bound conn names
If flock is available, ejabberdctl will use it to grab one
of a bound number of connection names. This allows concurrent
connections while using a bound number of atoms.

Using PID, timestamps or random strings for transient connection IDs
(which would avoid the need for flock) uses an unbound number of atoms.
This can effectively DoS servers, as these connection names are
not garbage collected.
2010-02-12 20:24:58 +01:00
Badlop 50b0ef4db9 Replace mention of ejabberd SVN with Git. 2010-02-11 13:24:39 +01:00
Badlop 18074abfdd Remove unnecessary section about Snow Leopard with Erlang R13B 2010-02-11 13:23:41 +01:00
Badlop d429ba812c Fix bashism in 'ejabberdctl started' 2010-02-11 11:04:15 +01:00
Badlop 0d09816c39 Allow a request_handler to serve a file in root of HTTP 2010-02-10 20:17:37 +01:00
Badlop 4caf4da9a6 Add Edoc comment about run_fold/4 function 2010-02-08 21:27:10 +01:00
Badlop 961640bd2c Fix to get shared roster displayed when user logins 2010-02-08 21:14:40 +01:00
Badlop 5d92dce21d Update spec of node_hometree get_states (thanks to Magnus Henoch) 2010-02-08 17:54:11 +01:00
Badlop 50f5356c89 Another migration of regexp call to re (EJAB-921) 2010-02-08 13:42:05 +01:00
Badlop 3156cdf10e Fix character in README file, in master, too. 2010-02-08 12:38:52 +01:00
Badlop 7a5ec47b58 Copied release notes from previous 2.1.* releases
SVN Revision: 2962
2010-02-05 13:34:09 +01:00
Pablo Polvorin b22e8b706a Add new debuging hook to the http receiving process.
The new hook is called http_request_debug, and receive the  LocalPath and Request as parameter.

SVN Revision: 2961
2010-02-05 13:34:09 +01:00
Pablo Polvorin 0ddf0d10a5 Hibernate http-bind process after handling a request.
When using BOSH, this reduces memory consuption of the http-bind process, with negligible CPU impact.

SVN Revision: 2960
2010-02-05 13:34:09 +01:00
Pablo Polvorin 0ed8ae5975 Bug Fix: The value of max # of erlang process specified in ejabberdctl.cfg was not used.
It was called PROCESSES in the .cfg file,  and ERL_PROCESSES in the script.  The latter is the correct,  to be coherent with ERL_MAX_PORTS and ERL_MAX_ETS_TABLES.

SVN Revision: 2959
2010-02-05 13:34:09 +01:00
Evgeniy Khramtsov 1283a59465 Added new acl for mod_register: access_from. This acl is applied if existing account tries to register a new account (either via s2s or c2s). The default action is to deny such operations.
SVN Revision: 2958
2010-02-03 12:20:04 +00:00
Evgeniy Khramtsov ad1aec6cd1 avoid resending <stream:error> stanzas on terminate (EJAB-1180)
SVN Revision: 2957
2010-02-03 12:10:08 +00:00
Evgeniy Khramtsov 7d7177a6af changed Reason to shutdown when stopping destroyed MUC room
SVN Revision: 2956
2010-02-03 11:50:37 +00:00
Badlop f5e6c9a2a3 Fix bug handling Reason in gen_fsm:terminate
SVN Revision: 2951
2010-02-02 11:15:44 +00:00
Evgeniy Khramtsov 7cd5a04087 improved SQL reconnect behaviour
SVN Revision: 2948
2010-01-31 11:48:21 +00:00
Christophe Romain bfff7d721d remove useless empty dir
SVN Revision: 2946
2010-01-28 16:04:58 +00:00
Evgeniy Khramtsov aaff63da58 regenerated guide.html
SVN Revision: 2944
2010-01-28 15:37:02 +00:00
Evgeniy Khramtsov 95a3cc88cd fixes badly formed define
SVN Revision: 2943
2010-01-28 15:34:00 +00:00
Evgeniy Khramtsov 70c1a3f60b ejabberd_c2s option "max_fsm_queue" is now documented
SVN Revision: 2942
2010-01-28 14:01:31 +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 479e5cb107 Fix disco of bare JID
SVN Revision: 2935
2010-01-27 18:54:03 +00:00
Badlop 887a65aa18 exmpp in pubsub doc and retrocompatibility comments (thanks to Karim Gemayel)
SVN Revision: 2934
2010-01-27 18:53:56 +00:00
Badlop e4a6d20328 exmpp fixes in captcha (thanks to Karim Gemayel)
SVN Revision: 2933
2010-01-27 18:53:47 +00:00
Badlop f5e1479afe exmpp fixes in receiver (thanks to Karim Gemayel)
SVN Revision: 2932
2010-01-27 18:53:43 +00:00
Badlop a10493976e exmpp fixes in mod_muc (thanks to Karim Gemayel)
SVN Revision: 2931
2010-01-27 18:53:38 +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 e98df7acb1 exmpp fixes in http_bind (thanks to Karim Gemayel)
SVN Revision: 2929
2010-01-27 18:53:27 +00:00
Mickaël Rémond f20d2bb2ff Fix typo in doc
SVN Revision: 2927
2010-01-26 13:14:19 +00:00
Badlop a5e4f34dbb Fix documentation installation, no need for executable permission (thanks to Peter)(EJAB-1170)
SVN Revision: 2923
2010-01-25 18:27:24 +00:00
Badlop 1c9760f6d2 Fix typo in EJABBERD_BIN_PATH (thanks to Martin Langhoff)(EJAB-891)
SVN Revision: 2922
2010-01-25 18:24:59 +00:00
Badlop 2b1ea7d85b Ignore in SVN also epam binary, and Makefile of pam and odbc subdirectories.
SVN Revision: 2921
2010-01-22 18:55:39 +00:00
Badlop 1677603e59 Ignore in SVN the file stun/Makefile
SVN Revision: 2920
2010-01-22 14:22:50 +00:00
Badlop a95286d511 Recompile the configure script and the Guide.
SVN Revision: 2919
2010-01-22 11:30:31 +00:00
Badlop 6e18e292f3 Degrade trunk to prealpha, and show a warning in configure script.
SVN Revision: 2918
2010-01-22 11:27:32 +00:00
Badlop 114dd4d9e7 Support in ejabberdctl help command names with old - characters.
SVN Revision: 2917
2010-01-20 10:32:56 +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 f3483529a7 Fix some moved URLs in the Guide
SVN Revision: 2910
2010-01-16 14:35:23 +00:00
Badlop ffc4f3dc48 Document the option route_subdomains in the Guide (EJAB-1164)
SVN Revision: 2909
2010-01-16 14:35:19 +00:00
Badlop a9fba750fa Improve functions calls when closing client connection.
SVN Revision: 2905
2010-01-15 12:02:15 +00:00
Christophe Romain 13220d44f4 improve delete_subscriptions code
SVN Revision: 2903
2010-01-14 12:56:40 +00:00
Christophe Romain 0c9e0168d5 fix binary conversion of ServerHost in presence/2
SVN Revision: 2901
2010-01-13 14:53:05 +00:00
Christophe Romain db4fe25274 add send_loop robustness
SVN Revision: 2900
2010-01-13 10:25:06 +00:00
Badlop e948aafeca If big offline message queue, show only subset on WebAdmin (EJAB-1095)
SVN Revision: 2898
2010-01-13 00:00:34 +00:00
Badlop 4639c0faf0 Fix explanation of access_max_user_messages.
SVN Revision: 2897
2010-01-13 00:00:11 +00:00
Badlop 82cd0adb79 Check for Effective GID EGID in ejabberdctl (thanks to Rustam Aliyev)(EJAB-1160)
SVN Revision: 2894
2010-01-12 18:13:30 +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 768ea20a3a Require exmpp 0.9.2
SVN Revision: 2890
2010-01-12 15:55:31 +00:00
Christophe Romain bb1ab19997 avoid calling gen_server on internal events (EJAB-1156)
SVN Revision: 2887
2010-01-12 15:14:57 +00:00
Christophe Romain dd159242e3 allow unsubscribe with 'all' SubId, as mod_pubsub already does
SVN Revision: 2885
2010-01-12 14:42:23 +00:00
Christophe Romain f8886ee36c fix NodeName issue from r2880 (thanks to Karim Gemayel)
SVN Revision: 2883
2010-01-12 13:30:49 +00:00
Christophe Romain 67af2908f9 fix headers (EJAB-1091), (EJAB-1092), (EJAB-1093) (thanks to Karim Gemayel)
SVN Revision: 2881
2010-01-12 12:34:02 +00:00
Badlop 9df6e1fe0a Support in user list page of WebAdmin when mod_offline is disabled (EJAB-377)
SVN Revision: 2878
2010-01-12 12:06:43 +00:00
Badlop a658348ac1 Show and throw error when captcha_cmd is required but not configured.
SVN Revision: 2875
2010-01-11 22:22:04 +00:00
Badlop 75ca3d8975 Minor case code simplification.
SVN Revision: 2873
2010-01-09 18:39:17 +00:00
Mickaël Rémond b431a9099e jlib:make_jid/3 does not exist anymore. I think I replaced it correctly by exmpp_jid:make/3
SVN Revision: 2872
2010-01-09 16:44:33 +00:00
Mickaël Rémond 7ed6614ad4 Added a comment to improve code as suggested by Dialyzer.
SVN Revision: 2871
2010-01-09 16:38:07 +00:00
Mickaël Rémond 4fba4db32f Match Erlang typing documentation, to remove dialyzer warning. Code was working fine however.
SVN Revision: 2870
2010-01-09 16:31:45 +00:00
Mickaël Rémond a0554183c5 Attempt to fix dialyzer warning: adhoc.erl:51: Guard test XData::'false' | #xmlel{ns::'jabber:x:data',declared_ns::[{_,_}],attrs::[{_,_,_,_}],children::'undefined' | [{_,_} | {_,_,_,_,_,_}]} =:= 'true' can never succeed
SVN Revision: 2869
2010-01-09 16:18:59 +00:00
Mickaël Rémond b1ad7ad0ba Fix typo in comment.
SVN Revision: 2868
2010-01-09 15:19:48 +00:00
Mickaël Rémond 0537eea929 Small refactoring
SVN Revision: 2867
2010-01-09 15:15:46 +00:00
Badlop cfc9089e51 An AccessCommand with Access 'all', don't require auth to execute it.
SVN Revision: 2866
2010-01-09 00:48:03 +00:00
Badlop bb926f8f87 Remove doc/api directory because its content is now in doc/devdoc.
SVN Revision: 2864
2010-01-07 20:13:03 +00:00
Badlop c2f242b4a6 Fix so script runs correctly when invoked by root (EJAB-1152)
SVN Revision: 2863
2010-01-05 20:31:19 +00:00
Badlop 3f1c8f98ed Show the last activity time in the user page.
SVN Revision: 2861
2010-01-04 20:39:01 +00:00
Badlop 7a3ce2e81a Command to stop ejabberd informing users, with grace period, and kindly (EJAB-1112)
SVN Revision: 2860
2010-01-04 20:35:47 +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 38dfef923c Improve parsing of ejabberd_sm:get_user_info result.
SVN Revision: 2858
2010-01-04 19:03:36 +00:00
Christophe Romain 89bceb959a add explicit comment on last published items configuration (EJAB-1130)
SVN Revision: 2856
2010-01-04 11:50:08 +00:00
Badlop 8deb2b57af Improve log message when showing lines of config file.
SVN Revision: 2851
2009-12-30 01:39:02 +00:00
Badlop 60915a7f21 Kick occupants with reason when room is stopped due to MUC shutdown (EJAB-1149)
SVN Revision: 2849
2009-12-30 01:29:02 +00:00
Badlop 69869f0446 Fix warning about unused variable
SVN Revision: 2847
2009-12-29 23:13:15 +00:00
Badlop 1eb2b1f047 If problem in config file starting ejabberd: display config lines and stop node (EJAB-1148)
SVN Revision: 2845
2009-12-29 22:49:16 +00:00
Badlop a89b400c04 Add +export_all to EFLAGS if: make debug=true (thanks to Marcin Owsiany)(EJAB-1134)
SVN Revision: 2843
2009-12-29 19:15:59 +00:00
Badlop 6f3aeead07 Support also SASL PLAIN auth messages described in RFC4616 (EJAB-1132)
SVN Revision: 2841
2009-12-29 18:45:02 +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 d911cd1124 Write in room log when a room is created, destroyed, started, stopped (EJAB-1144)
SVN Revision: 2837
2009-12-29 14:44:12 +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 857c87499a Fix bug of unbound variable Attrs in the previous commit.
SVN Revision: 2833
2009-12-28 18:47:14 +00:00
Badlop 381dff1afc Provide more detailed log message when s2s stream start fails.
SVN Revision: 2832
2009-12-28 15:31:18 +00:00
Badlop 378a6b2ff2 Better use install_fallback when importing a Mnesia backup file.
SVN Revision: 2830
2009-12-28 12:44:07 +00:00
Badlop 5b782ad5a1 Support for arguments in ejabberdctl that are empty strings.
SVN Revision: 2828
2009-12-28 11:46:22 +00:00
Badlop 93ed18c2e2 Add explanation about global Access precendence over vhost Access (EJAB-803)
SVN Revision: 2826
2009-12-23 16:09:47 +00:00
Badlop 95e96cc346 Fix error message when register is forbidden by ACL (EJAB-803)
SVN Revision: 2825
2009-12-23 16:09:33 +00:00
Badlop 0e2cd7a8d0 Clarify that 'tls' option is still useful in ejabberd_http for HTTPS.
SVN Revision: 2820
2009-12-23 09:05:02 +00:00
Badlop 332b474a9e Remove the old note about LDAP lack of encryption.
SVN Revision: 2818
2009-12-21 16:11:18 +00:00
Badlop 7434234c27 pep_mapping not working due to Node type mismatch (EJAB-1135)
SVN Revision: 2816
2009-12-21 15:20:27 +00:00
Badlop 848e72bcab Fix EDoc comment
SVN Revision: 2813
2009-12-21 14:31:10 +00:00
Badlop eb26edf5f5 Fix get_group_opt to return Default value in case of Mnesia error.
SVN Revision: 2812
2009-12-19 00:19:26 +00:00
Badlop 440299656f Print command's reply and newline only when there's something to print.
SVN Revision: 2807
2009-12-11 20:08:06 +00:00
Badlop 4ac69edfe7 Added to ejabberdctl an experimental variable EJABBERD_BYPASS_WARNINGS
SVN Revision: 2805
2009-12-11 19:43:57 +00:00
Badlop 9ccdcfc849 Add support for serving a Unique Room Name (thanks to Pablo Polvorin)(EJAB-1121)
SVN Revision: 2803
2009-12-11 12:32:40 +00:00
Badlop 514d5aab14 Show Last Activity menu item in Webadmin only if vhost has mod_last (EJAB-1031)
SVN Revision: 2801
2009-12-09 17:48:03 +00:00
Badlop 2a09bdad13 Call in WebAdmin the proper mod_last backend module (EJAB-1031)
SVN Revision: 2800
2009-12-09 17:47:50 +00:00
Badlop dfa966a576 Fix erl -setcookie argument in cluster setup (thanks to Jan Koum)
SVN Revision: 2797
2009-12-09 10:09:57 +00:00
Pablo Polvorin 573ff2564b Remove usage of #jid record introduced in 2787.
Replace explicit references to #jid with exmpp_jid API calls.

SVN Revision: 2794
2009-12-08 18:59:00 +00:00
Badlop 929022bc0f Apply a forgotten part of the original patch (EJAB-1119)
SVN Revision: 2793
2009-12-08 17:33:30 +00:00
Badlop 21a36819b0 Fix memory and port leak when TLS is enabled in HTTP (thanks to Brian Cully)(EJAB-1119)
SVN Revision: 2791
2009-12-07 17:34:52 +00:00
Badlop efd99f5b28 Add notices about MIT license and copyright to escobar_hiliter.erl
SVN Revision: 2788
2009-12-07 15:50:08 +00:00
Christophe Romain 913684e5a5 prevent sending duplicated last items if several resources online (EJAB-1116)
SVN Revision: 2787
2009-12-06 23:21:03 +00:00
Badlop 40e06b55c0 Typo in mod_pubsub_odbc breaks Service Discovery and more (EJAB-1115)
SVN Revision: 2785
2009-12-04 18:36:07 +00:00
Badlop 182f4b008b Call ejabberd_router:route/3 instead of sending a message (EJAB-1114)
SVN Revision: 2783
2009-12-04 16:32:20 +00:00
Badlop c3df4f3eb0 Small relax the limitation in the mod_pubsub_odbc host option.
SVN Revision: 2780
2009-12-04 16:07:43 +00:00
Badlop 2c1b8b0930 Merge from 2.1.x 2498: added mod_pubsub_odbc documentation
SVN Revision: 2779
2009-12-03 22:58:49 +00:00
Badlop 3cca748bd5 Explain limitation in the mod_pubsub_odbc host option.
SVN Revision: 2778
2009-12-03 22:58:30 +00:00
Badlop 2a05ca5f2b Use os:getenv to get HOME; if variable is undefined use default values.
SVN Revision: 2772
2009-12-03 15:58:19 +00:00
Badlop 3173d9167f Forward IQ vCard queries of room occupants to bare JID, not full (EJAB-1045)
SVN Revision: 2770
2009-12-01 20:02:16 +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 bc355eebaa Fix call to get_module_proc with binary.
SVN Revision: 2765
2009-11-30 13:08:37 +00:00
Badlop 78f9586839 Fix call to hook management in mod_caps start/stop
SVN Revision: 2764
2009-11-30 12:55:35 +00:00
Badlop 040892d1a2 Remove all references to unused library: expat (EJAB-1111)
SVN Revision: 2763
2009-11-30 12:32:14 +00:00
Badlop 71cd4917d8 Move get_group_name outside the loop (thanks to mikekaganski)
SVN Revision: 2761
2009-11-26 14:45:39 +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 cf6d842d45 Fix warning
SVN Revision: 2758
2009-11-24 15:22:06 +00:00
Badlop 733e84a4a8 Fix exmpp_stanza:get_sender return value.
SVN Revision: 2757
2009-11-24 11:56:26 +00:00
Badlop 9ac9a84ca7 Fix explanation of option content_types. Reorder options.
SVN Revision: 2756
2009-11-23 20:28:53 +00:00
Badlop 4f369d048d Generate main XML file also when exporting only a vhost (EJAB-1098)
SVN Revision: 2754
2009-11-23 18:35:11 +00:00
Badlop c1a7e30f12 Show informative webpage when browsing the HTTP-Poll page (EJAB-1106)
SVN Revision: 2752
2009-11-23 15:22:45 +00:00
Badlop 4dcfde7737 Change captcha.sh to not depend on bash (thanks to Konstantin Khomoutov)(EJAB-1105)
SVN Revision: 2750
2009-11-23 12:43:56 +00:00
Badlop 0838514c27 Option to define custom HTTP headers in mod_http_fileserver (EJAB-612)
SVN Revision: 2748
2009-11-23 12:13:26 +00:00
Badlop 29f3ef4716 Explain that the example captcha.sh requires Bash because uses RANDOM feature.
SVN Revision: 2746
2009-11-17 15:49:54 +00:00
Badlop a8e5437271 Include IP address, time and module in IBR admin message (thanks to Tsukasa Hamano)
SVN Revision: 2743
2009-11-17 11:14:00 +00:00
Badlop a363d988a7 The default value of option ldap_filter is: undefined.
SVN Revision: 2742
2009-11-13 20:17:54 +00:00
Badlop e1968b6b52 Copied Release Notes from 2.1.0 tag
SVN Revision: 2740
2009-11-13 20:07:03 +00:00
Evgeniy Khramtsov 99a6f12026 fixes allow_host/2 on subdomains. added hook s2s_allow_host: the hook should return deny or allow
SVN Revision: 2739
2009-11-13 16:22:54 +00:00
Badlop eca650efac Fix bug that forgot listener options when using R12 or older.
SVN Revision: 2736
2009-11-06 18:33:37 +00:00
Christophe Romain bde4b7b057 minor bug fixes related to the use/conversion of/to exmpp (thanks to Karim Gemayel)
SVN Revision: 2733
2009-11-06 14:36:41 +00:00
Christophe Romain a1e9b55ead minor bug fixes related to the use/conversion of/to exmpp (thanks to Karim Gemayel)
SVN Revision: 2732
2009-11-06 14:34:23 +00:00
Christophe Romain 1c4cc57e3f fix root node deletion match
SVN Revision: 2730
2009-11-05 17:36:54 +00:00
Badlop 26cd3a78d2 Fix ProcessOne name in comments.
SVN Revision: 2728
2009-11-04 20:19:38 +00:00
Badlop 3ed3c94a15 Extend explanation of ldap_encrypt tls (thanks to Konstantin Khomoutov)
SVN Revision: 2727
2009-11-04 20:18:23 +00:00
Badlop ff338a0a62 Fix disco on root node, add commands to disco (thanks to Brian Cully)(EJAB-1094)
SVN Revision: 2726
2009-11-04 20:17:08 +00:00
Badlop 5138a9709e Send authorization messages outside of get-pending transaction (thanks to Brian Cully)(EJAB-1090)
SVN Revision: 2725
2009-11-04 20:16:05 +00:00
Badlop ae93cf2c28 Send authorization messages outside of get-pending transaction (thanks to Brian Cully)(EJAB-1090)
SVN Revision: 2720
2009-11-04 17:40:39 +00:00
Badlop 1c2d639179 Fix small typo (thanks to MiCHi)
SVN Revision: 2716
2009-10-29 12:41:51 +00:00
Christophe Romain 2078f9ae95 typo fix on mod_pubsub and improve ejabberd_sm:get_session_pid api
SVN Revision: 2715
2009-10-27 14:40:01 +00:00
Christophe Romain 1fea1e3f4e minor bugfix, thanks to brian Cully (EJAB-1089)
SVN Revision: 2714
2009-10-27 14:30:00 +00:00
Christophe Romain b2bd51d3e3 fix disco bugs, thanks to Brian Cully (EJAB-1088)
SVN Revision: 2712
2009-10-27 14:24:33 +00:00
Badlop 80a7f5123d Update ejabberd-p1 logo
SVN Revision: 2709
2009-10-26 18:30:53 +00:00
Badlop 8746175f1d Better detection of ejabberd modules. Support down to Graphviz 2.8. Fix APP colours.
SVN Revision: 2708
2009-10-26 18:30:38 +00:00
Badlop 236d8fa254 Update overview.edoc
SVN Revision: 2706
2009-10-23 15:14:39 +00:00
Badlop 3872907f38 Fix EDoc errors
SVN Revision: 2705
2009-10-23 15:14:25 +00:00
Badlop 98f79f0c47 Add devdoc support to Makefiles
SVN Revision: 2704
2009-10-23 15:14:08 +00:00
Badlop 795992fb30 Update stylesheet
SVN Revision: 2703
2009-10-23 15:13:48 +00:00
Badlop 96504ffd88 Add images for ejabberd devdoc.
SVN Revision: 2702
2009-10-23 15:13:28 +00:00
Badlop 5e7b217d6c Add funrelg: draw a function relation graph from source code using Graphviz.
SVN Revision: 2701
2009-10-23 15:13:11 +00:00
Badlop f07513c74b Add escobar_run, a small frontend to call escobar_hilite.
SVN Revision: 2700
2009-10-23 15:12:48 +00:00
Badlop 22fffb32ca Customize escobar_hilite.erl for ejabberd purposes.
SVN Revision: 2699
2009-10-23 15:12:32 +00:00
Badlop abcb3f22a8 Add escobar_hilite.erl and escobar.css.
SVN Revision: 2698
2009-10-23 15:12:16 +00:00
Badlop f7a5689c45 Move overview.edoc to src/ dir.
SVN Revision: 2697
2009-10-23 15:12:01 +00:00
Badlop bebc5a137a Rename directory doc/api to doc/devdoc
SVN Revision: 2696
2009-10-23 15:11:43 +00:00
Badlop 5625f7d984 Fix mistake that disallowed s2s_out connections when using Erlang R12 or older.
SVN Revision: 2695
2009-10-22 14:44:00 +00:00
Badlop c889491e2f The road-to-exmpp branch now becomes trunk.
SVN Revision: 2693
2009-10-21 12:58:55 +00:00
Christophe Romain cd09381efd update pubsub patch
SVN Revision: 2691
2009-10-21 08:31:51 +00:00
Pablo Polvorin 306cff729c Merge with trunk #2687 (EJAB-667) (untested)
SVN Revision: 2690
2009-10-20 22:09:43 +00:00
Badlop 4083267cc9 Mention the change in nodename slash separation in release notes.
SVN Revision: 2689
2009-10-20 15:39:57 +00:00
Christophe Romain 8ce1e790ac does not use slash as default separator in nodename (EJAB-667)
SVN Revision: 2687
2009-10-20 15:03:07 +00:00
Badlop 12573ed8d2 Body tag not properly closed in HTTP-Bind (thanks to Janusz Dziemidowicz)(EJAB-1075)
SVN Revision: 2686
2009-10-20 09:56:51 +00:00
Badlop a232d16ff4 Body tag not properly closed in HTTP-Bind (thanks to Janusz Dziemidowicz)(EJAB-1075)
SVN Revision: 2685
2009-10-20 09:56:12 +00:00
Badlop 6b4651fad6 In default config, only local accounts can create rooms and pubsub nodes.
SVN Revision: 2684
2009-10-19 17:05:13 +00:00
Badlop f2a37597cf In default config, only local accounts can create rooms and pubsub nodes.
SVN Revision: 2683
2009-10-19 17:02:37 +00:00
Badlop 0095f4fbf9 Provide send_timeout_close option in TCP only in R13B or higher (EJAB-926)
SVN Revision: 2682
2009-10-19 14:53:39 +00:00
Badlop 372658d299 Merged from trunk SVN r2671:
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: 2681
2009-10-19 14:53:21 +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 227514c20c Support ejabberd_listener option 'backlog' to increase TCP backlog (thanks to Janusz Dziemidowicz)(EJAB-1063)
SVN Revision: 2679
2009-10-19 13:24:13 +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
Badlop 84a1cc943d Consistency, wording and spacing corrections for Polish messages (thanks to Marcin Owsiany)(EJAB-1072)
SVN Revision: 2677
2009-10-19 11:36:05 +00:00
Badlop 9a6c869cb8 Fix word Sensible with Sensitive (thanks to Marcin Owsiany)(EJAB-1071)
SVN Revision: 2676
2009-10-19 10:50:00 +00:00
Badlop 47d86f5ad1 Fix word Sensible with Sensitive (thanks to Marcin Owsiany)(EJAB-1071)
SVN Revision: 2675
2009-10-19 10:48:55 +00:00
Badlop dce7b1430b Start mnesia as a permanent application (thanks to Brian Cully)(EJAB-1068)
SVN Revision: 2674
2009-10-19 10:42:19 +00:00
Badlop da50ec6215 Start mnesia as a permanent application (thanks to Brian Cully)(EJAB-1068)
SVN Revision: 2673
2009-10-19 10:41:44 +00:00
Badlop 69c4d5d89b Fix unnecessary call to xml:crypt/1 (thanks to Janusz Dziemidowicz)(EJAB-1064)
SVN Revision: 2672
2009-10-19 10:30:41 +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 162fbc2ef8 Small fix in RSM decoding (thanks to Alexander Tsvyashchenko)(EJAB-1066)
SVN Revision: 2670
2009-10-15 22:46:50 +00:00
Badlop 13b8940606 Fixed more gcc signedness warnings
SVN Revision: 2669
2009-10-13 22:31:06 +00:00
Badlop f86318a179 Fixed more gcc signedness warnings
SVN Revision: 2668
2009-10-13 22:30:08 +00:00
Badlop f1b9f1fb63 Fix EDoc compilation errors.
SVN Revision: 2667
2009-10-13 21:36:32 +00:00
Christophe Romain b667148982 prevent remove_user from blocking gen_server, and allow plugin to change broadcasted payload on publish
SVN Revision: 2666
2009-10-13 16:43:02 +00:00
Christophe Romain 861cc87272 prevent remove_user from blocking gen_server, and allow plugin to change broadcasted payload on publish
SVN Revision: 2665
2009-10-13 16:42:13 +00:00
Christophe Romain cbf6abc263 typo fix (EJAB-1060)
SVN Revision: 2664
2009-10-13 07:47:17 +00:00
Badlop e5fb89731c If s2s fails due to namespace mismatch, show differences to help debugging the problem.
SVN Revision: 2663
2009-10-12 22:51:53 +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
Christophe Romain 2565a670b1 fix get_item issue on authorize access model (thanks to brian cully) (EJAB-1060)
SVN Revision: 2661
2009-10-12 15:25:00 +00:00
Christophe Romain 3128c26766 fix get_item issue on authorize access model (thanks to brian cully) (EJAB-1060)
SVN Revision: 2660
2009-10-12 15:22:14 +00:00
Badlop 74cd5ffb02 Autodetect compilation parameters for Mac OS X Snow Leopard (EJAB-1056)
SVN Revision: 2659
2009-10-12 12:59:07 +00:00
Christophe Romain c311ea1505 autodetect compilation parameters for Mac OS X Snow Leopard (EJAB-1056)
SVN Revision: 2658
2009-10-12 12:01:54 +00:00
Christophe Romain c3303ce364 return invalid-options on badly formed subscription options
SVN Revision: 2657
2009-10-12 10:23:51 +00:00
Christophe Romain 2c48515e7c return invalid-options on badly formed subscription options
SVN Revision: 2656
2009-10-12 09:59:36 +00:00
Christophe Romain 2042ab090d Default pubsub messages to headline if nothing is configured (thanks to Brian Cully) (EJAB-1061)
SVN Revision: 2655
2009-10-12 09:06:37 +00:00
Christophe Romain 25523371fc Default pubsub messages to headline if nothing is configured (thanks to Brian Cully) (EJAB-1061)
SVN Revision: 2654
2009-10-12 09:05:26 +00:00
Badlop 13a231f6fa Add debug message on command execution
Merged from trunk@2650.

SVN Revision: 2653
2009-10-09 12:01:43 +00:00
Badlop 503defac73 Fix regression for authorize node subscription (thanks to Brian Cully)(EJAB-1060)
SVN Revision: 2652
2009-10-09 12:01:30 +00:00
Badlop 3e9e967429 Fix regression for authorize node subscription (thanks to Brian Cully)(EJAB-1060)
SVN Revision: 2651
2009-10-09 12:00:20 +00:00
Mickaël Rémond c79489fb65 Add debug message on command execution
SVN Revision: 2650
2009-10-08 17:22:48 +00:00
Badlop 2d41c81890 Document new option max_fsm_queue.
SVN Revision: 2649
2009-10-08 14:34:32 +00:00
Badlop 4039f4a14f Document new option max_fsm_queue.
SVN Revision: 2648
2009-10-08 14:29:42 +00:00
Badlop 036095f37d New option added: max_fsm_queue. Removed hardcoded FSMLIMITS. (thanks to Evgeniy Khramtsov)
Merged from trunk@2645

SVN Revision: 2647
2009-10-08 11:33:32 +00:00
Badlop a2bb22a0e7 Use queue to reduced quadratic time effort on selective receive (thanks to Alexey Shchepin)
Merged from trunk@2644

SVN Revision: 2646
2009-10-08 11:33:18 +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
Evgeniy Khramtsov 72535ee14d use queue to reduced quadratic time effort on selective receive (thanks to Alexey Shchepin)
SVN Revision: 2644
2009-10-07 13:41:36 +00:00
Christophe Romain 65926460b2 allow max_items_node use on pep
SVN Revision: 2643
2009-10-06 15:22:02 +00:00
Christophe Romain 0a77892391 allow max_items_node use on pep
SVN Revision: 2642
2009-10-06 15:18:58 +00:00
Badlop f4e35033e7 Improve stream error stanza when receives invalid handshake from component.
SVN Revision: 2641
2009-10-06 10:05:10 +00:00
Badlop c10984f61b Improve stream error stanza when receives invalid handshake from component.
SVN Revision: 2640
2009-10-06 10:04:26 +00:00
Badlop 75793f7cf4 New CAPTCHA script since previous one has been broken (thanks to Evgeniy Khramtsov)(merged from trunk@2631)
SVN Revision: 2639
2009-10-02 15:04:16 +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
Mickaël Rémond e36c530732 Describe how to compile ejabberd on Mac OS X Snow Leopard with Erlang R13B-2
SVN Revision: 2637
2009-09-27 14:31:52 +00:00
Mickaël Rémond e780126c9e Describe how to compile ejabberd on Mac OS X Snow Leopard with Erlang R13B-2
SVN Revision: 2636
2009-09-27 14:30:01 +00:00
Christophe Romain 53edf861e0 do not create hometree base when hometree not configured as plugin
SVN Revision: 2635
2009-09-25 13:14:59 +00:00
Christophe Romain 4667cefb62 do not create hometree base when hometree not configured as plugin
SVN Revision: 2634
2009-09-25 13:12:29 +00:00
Christophe Romain 24afead423 fix EJAB-1054 (thanks to Evgeniy Khramtsov)
SVN Revision: 2633
2009-09-25 12:48:10 +00:00
Evgeniy Khramtsov 6fa0f68239 fixes race condition in wait_caps/note_caps (EJAB-1054)
SVN Revision: 2632
2009-09-25 11:47:21 +00:00
Evgeniy Khramtsov a126a1883e new CAPTCHA script since previous one has been broken
SVN Revision: 2631
2009-09-25 07:02:23 +00:00
Badlop 4606f33081 Update Catalan translation (thanks to Jan Kusanagi)
SVN Revision: 2630
2009-09-24 21:27:23 +00:00
Christophe Romain 2f5211ab74 improve waiting caps clean (EJAB-1054)
SVN Revision: 2629
2009-09-24 19:52:46 +00:00
Christophe Romain b168cd7cf2 fix EJAB-1044 and EJAB-1055
SVN Revision: 2628
2009-09-24 19:47:01 +00:00
Christophe Romain 726545ae86 improve waiting caps clean (EJAB-1054)
SVN Revision: 2627
2009-09-24 19:29:21 +00:00
Christophe Romain 1c585e74bc fix EJAB-1044 and EJAB-1055
SVN Revision: 2626
2009-09-24 19:28:43 +00:00
Badlop dc474cf9d5 Recompile guide and translation files.
SVN Revision: 2625
2009-09-24 13:37:32 +00:00
Badlop 667fc07ec6 Recomppile guide.
SVN Revision: 2624
2009-09-24 13:36:48 +00:00
Christophe Romain e5a26b388f rename pep_sendlast_offline option to ignore_pep_from_offline (EJAB-1047)
SVN Revision: 2623
2009-09-23 22:00:53 +00:00
Christophe Romain e2ba1f4f1d rename pep_sendlast_offline option to ignore_pep_from_offline in default configuration
SVN Revision: 2622
2009-09-23 21:56:41 +00:00
Christophe Romain 330d6f7b6e rename pep_sendlast_offline option to ignore_pep_from_offline (EJAB-1047)
SVN Revision: 2621
2009-09-23 21:54:58 +00:00
Christophe Romain 479b04a6a3 fix Makefile.win32 for including stun (thanks to neustradamus)
SVN Revision: 2620
2009-09-23 21:12:44 +00:00
Christophe Romain 68fd22af87 fix Makefile.win32 for including stun (thanks to neustradamus)
SVN Revision: 2619
2009-09-23 21:11:21 +00:00
Badlop b12b18d59f Fix wrong XEP number to XEP-0227
SVN Revision: 2618
2009-09-23 17:27:09 +00:00
Badlop f25b2266bd Fix wrong XEP number to XEP-0227. Recompile translation files.
SVN Revision: 2617
2009-09-23 17:25:04 +00:00
Christophe Romain b3955fca3a fix EJAB-1048 and EJAB-819, thanks to badlop
SVN Revision: 2616
2009-09-23 16:32:06 +00:00
Christophe Romain 8107b2b7dc fix EJAB-819 thanks to badlop
SVN Revision: 2615
2009-09-23 15:56:06 +00:00
Badlop bac5c30380 Replace several mentions of Jabber to XMPP (thanks to Nicolas Vérité)
SVN Revision: 2614
2009-09-23 15:29:34 +00:00
Badlop 3c3cd099de Replace several mentions of Jabber to XMPP (thanks to Nicolas Vérité)
SVN Revision: 2613
2009-09-23 15:28:53 +00:00
Mickaël Rémond 4ce2890af0 Replaced Jabber references in config file with XMPP, official name of the protocol
SVN Revision: 2612
2009-09-23 12:37:58 +00:00
Mickaël Rémond 4936c2dc58 Replaced Jabber references in config file with XMPP, official name of the protocol
SVN Revision: 2612
2009-09-23 12:37:58 +00:00
Christophe Romain fc1dd42e5a fix EJAB-1048, add timestamp to last published items
SVN Revision: 2611
2009-09-23 09:27:12 +00:00
Mickaël Rémond 325660a547 Removed unneeded use of length function + Remove trailing spaces
SVN Revision: 2610
2009-09-21 15:10:50 +00:00
Badlop 169a0471b9 Document more ejabberd commands in the Guide (EJAB-1041)
SVN Revision: 2609
2009-09-21 10:14:06 +00:00
Badlop d6f63ceec5 Document more ejabberd commands in the Guide (EJAB-1041)
SVN Revision: 2608
2009-09-21 10:03:37 +00:00
Badlop 8d47a20d63 Added new translation to Greek language (thanks to James Iakovos Mandelis)
SVN Revision: 2607
2009-09-21 07:39:23 +00:00
Badlop eab6c09e0c Mention the mod_pubsub plugin default rename to flat
SVN Revision: 2606
2009-09-21 07:39:07 +00:00
Christophe Romain 6bdf4aa960 improve configure parsing in iq_pubsub (sync with ejabberd 2.1.0)
SVN Revision: 2605
2009-09-20 08:14:24 +00:00
Christophe Romain 36676f0719 fix missing member affiliation on odbc plugin
SVN Revision: 2604
2009-09-18 13:44:12 +00:00
Christophe Romain 9aee12d83b fix missing member affiliation on odbc plugin
SVN Revision: 2603
2009-09-18 13:43:49 +00:00
Christophe Romain bb1fca058d Return terminal binding condition on max stanza size limit (thanks to Aleksey)
SVN Revision: 2602
2009-09-18 13:33:12 +00:00
Christophe Romain 970973cb9a fix compilation warning
SVN Revision: 2601
2009-09-18 13:29:08 +00:00
Christophe Romain 719aff1088 Return terminal binding condition on max stanza size limit (thanks to Aleksey)
SVN Revision: 2600
2009-09-18 13:17:07 +00:00
Evgeniy Khramtsov ff1622c658 removed pretty printer from debug
SVN Revision: 2599
2009-09-15 11:11:49 +00:00
Badlop 717837172c Remove ChangeLog on distclean
SVN Revision: 2598
2009-09-11 08:59:53 +00:00
Christophe Romain ae70faef94 change version do 2.1.0
SVN Revision: 2597
2009-09-11 08:16:25 +00:00
Badlop c86a73f894 Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2596
2009-09-10 22:38:37 +00:00
Badlop 4b8d7dd19b Mention in the 2.1.0 release notes the HTTP-Bind optimization
SVN Revision: 2595
2009-09-10 22:38:17 +00:00
Jérôme Sautret b4c161e04a Merge r2592 and r2593 from trunk:
Fix pubsub tables constraints in MySQL schema creation script.
Add a "created_at" column to some tables in the MySQL schema to store
a timestamp (thanks to Pedro Melo, EJAB-376).

SVN Revision: 2594
2009-09-10 16:59:58 +00:00
Jérôme Sautret 49894fe065 Add a "created_at" column to some tables in the MySQL schema to store
a timestamp (thanks to Pedro Melo, EJAB-376).

SVN Revision: 2593
2009-09-10 16:52:20 +00:00
Jérôme Sautret 58d690376c Fix pubsub tables constraints in MySQL schema creation script.
SVN Revision: 2592
2009-09-10 16:45:50 +00:00
Christophe Romain 376741c9a1 fix delete item to allow owner being able to remove all publisher items, and also fix EJAB-1036
SVN Revision: 2591
2009-09-09 21:49:23 +00:00
Christophe Romain c841505a07 remove useless include
SVN Revision: 2590
2009-09-09 21:41:25 +00:00
Christophe Romain 31c6d6194f fix delete item to allow owner being able to remove all publisher items, and also fix EJAB-1036
SVN Revision: 2589
2009-09-09 21:40:21 +00:00
Badlop 04e86829e3 Change some error messages.
SVN Revision: 2588
2009-09-07 14:31:34 +00:00
Badlop d678a21f21 Change some error messages.
SVN Revision: 2587
2009-09-07 14:28:08 +00:00
Christophe Romain 75dbcd5c68 fix minor timestamp shift between item creation and modification
SVN Revision: 2586
2009-09-04 23:34:05 +00:00
Christophe Romain 860957d20c fix minor timestamp shift between item creation and modification
SVN Revision: 2585
2009-09-04 23:32:13 +00:00
Pablo Polvorin 283aa52b31 Port #2583 from trunk
Use the local (target) domain for firing the s2s_receive_packet hook.  

It was using the external server domain (LFrom) instead of the local domain (LTo).  
This might have impact on mod_caps in s2s scenarios, needs further attention.

SVN Revision: 2584
2009-09-04 21:33:30 +00:00
Pablo Polvorin 9d8de17b4d Use the local (target) domain for firing the s2s_receive_packet hook.
It was using the external server domain (LFrom) instead of the local domain (LTo).  
This might have impact on mod_caps in s2s scenarios, needs further attention.

SVN Revision: 2583
2009-09-04 21:31:03 +00:00
Badlop 29b2da42f5 Replace calls from 'regexp' to the OTP R12 new module 're' (EJAB-921)
SVN Revision: 2582
2009-09-02 14:26:01 +00:00
Badlop 330a4c9452 Small fix exmpp related code
SVN Revision: 2581
2009-09-02 14:25:42 +00:00
Badlop 0d108d5b1e Update Swedish translation (thanks to Gustaf Alströmer)
SVN Revision: 2580
2009-09-02 13:39:57 +00:00
Christophe Romain fa23b83dbb improve previous patch
SVN Revision: 2579
2009-09-01 13:23:19 +00:00
Christophe Romain 07f457f49f improve previous patch
SVN Revision: 2578
2009-09-01 13:16:10 +00:00
Badlop 81f4644622 Fix missing tag when configuring subscription option (thanks to Clochix)
SVN Revision: 2577
2009-09-01 08:19:14 +00:00
Badlop 55fef3c3e7 Fix missing tag when configuring subscription option (thanks to Clochix)
SVN Revision: 2576
2009-09-01 08:18:30 +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 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 4d3708b637 Include in release notes Zlib+STARTTLS support
SVN Revision: 2573
2009-08-31 16:41:20 +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 fd57ec5872 Support zlib compression after STARTTLS (thanks to Aleksey Shchepin)(EJAB-499)
SVN Revision: 2571
2009-08-31 16:29:25 +00:00
Badlop a5c5808911 Remove the word "END" of release_notes file because it seems unnecessary.
SVN Revision: 2570
2009-08-31 14:54:35 +00:00
Badlop f6c6a7ee31 Fix Edoc errors
SVN Revision: 2569
2009-08-31 11:11:13 +00:00
Badlop 98f93104a7 Rename erlang log file sasl.log to erlang.log (EJAB-783)
SVN Revision: 2568
2009-08-31 11:03:35 +00:00
Badlop 19dead97a3 Rename erlang log file sasl.log to erlang.log (EJAB-783)
SVN Revision: 2567
2009-08-31 08:41:56 +00:00
Badlop 2568c616f7 Update translation files
SVN Revision: 2566
2009-08-29 19:23:02 +00:00
Badlop dab4adaaee Update Esperanto translation (thanks to Andreas van Cranenburgh)
SVN Revision: 2565
2009-08-29 19:22:38 +00:00
Christophe Romain 3940a6bab3 secure calls to ets:lookup
SVN Revision: 2564
2009-08-28 16:28:22 +00:00
Christophe Romain fdc6149c08 apply last patch to pubsub_odbc as well
SVN Revision: 2563
2009-08-28 16:24:42 +00:00
Christophe Romain e29c992cbf secure calls to ets:lookup
SVN Revision: 2562
2009-08-28 16:22:37 +00:00
Christophe Romain de78508f45 fix send last item issue
SVN Revision: 2561
2009-08-28 00:09:21 +00:00
Christophe Romain 156c496a27 fix send last item issue
SVN Revision: 2560
2009-08-28 00:06:28 +00:00
Christophe Romain fab29f4cf0 port all recent fixes from trunk related to odbc subscriptions
SVN Revision: 2559
2009-08-27 23:09:20 +00:00
Christophe Romain 5e99d3416d delete node fix
SVN Revision: 2558
2009-08-27 22:36:46 +00:00
Christophe Romain adfca08e43 remove INFO_MSG call inside sql_query_internal
SVN Revision: 2557
2009-08-27 22:30:57 +00:00
Christophe Romain b6f50972b6 remove INFO_MSG call inside sql_query_internal
SVN Revision: 2556
2009-08-27 22:27:55 +00:00
Christophe Romain ff1fc2b4f0 reapply previous RSM filtering fix drop by mistake
SVN Revision: 2555
2009-08-27 22:23:39 +00:00
Christophe Romain 57aefa240f get odbc subscriptions bugfix
SVN Revision: 2554
2009-08-27 22:14:48 +00:00
Christophe Romain 2fdabe8b5b several improvements, and fix odbc subscriptions issues
SVN Revision: 2553
2009-08-27 21:38:23 +00:00
Badlop 217d3131c8 Fix EDoc comment
SVN Revision: 2552
2009-08-27 18:15:12 +00:00
Christophe Romain 51e2896914 fix pep not fetching subscriptions
SVN Revision: 2551
2009-08-27 10:20:05 +00:00
Christophe Romain 35e8b95928 added pubsub odbc tables creation
SVN Revision: 2550
2009-08-27 09:49:37 +00:00
Christophe Romain 054ad379ce typo fix
SVN Revision: 2549
2009-08-27 09:44:03 +00:00
Christophe Romain 2425c51ae4 fix issue with RSM filtering
SVN Revision: 2548
2009-08-27 09:32:40 +00:00
Christophe Romain c137715902 fix old api in node_flat_odbc
SVN Revision: 2547
2009-08-27 08:57:45 +00:00
Christophe Romain f5091aa1ae pubsub now is sync with last trunk
SVN Revision: 2546
2009-08-27 08:48:21 +00:00
Christophe Romain bb08207569 fix node_public portage
SVN Revision: 2545
2009-08-27 08:34:16 +00:00
Christophe Romain 71e0d7d8e2 port commit from r2527 to odbc plugin
SVN Revision: 2544
2009-08-27 08:26:22 +00:00
Christophe Romain 670d7c7ebd port commit from r2527 to odbc plugin
SVN Revision: 2543
2009-08-27 08:17:44 +00:00
Christophe Romain 3b27670d4d update win32 makefile
SVN Revision: 2542
2009-08-27 07:55:45 +00:00
Pablo Polvorin 944dd1cc7f Port pubsub odbc backend to exmpp.
Warning: A work in progress, isn't working yet!

SVN Revision: 2541
2009-08-26 20:27:57 +00:00
Evgeniy Khramtsov ba3a45452e check if a room is not persistent before starting a new one with the same name (EJAB-1026)
SVN Revision: 2540
2009-08-26 04:18:42 +00:00
Evgeniy Khramtsov 2c735c91d6 check if a room is not persistent before starting a new one with the same name (EJAB-1026)
SVN Revision: 2539
2009-08-26 04:14:54 +00:00
Pablo Polvorin f7c5a4a15b backport trunk commit r2530
SVN Revision: 2538
2009-08-25 20:33:01 +00:00
Pablo Polvorin 4d5bfe2ee8 Fix pubsub_publish_item_ hook call parameter and jid conversion on node_hometree.
published messages are delivered to subscribers (flat nodes).

SVN Revision: 2537
2009-08-25 20:03:28 +00:00
Pablo Polvorin a1a6469ed0 Updated to trunk r2532, fix subscription managment (by owner)
SVN Revision: 2536
2009-08-25 19:54:44 +00:00
Pablo Polvorin fcf66c2e75 Fix affiliation managment
Node owner can add/remove affiliations

SVN Revision: 2535
2009-08-25 17:42:25 +00:00
Pablo Polvorin b4f0bb65c6 Fix disco#items on pubsub nodes
SVN Revision: 2534
2009-08-25 17:23:43 +00:00
Pablo Polvorin 938a4007b3 Initial port of pubsub changes(up to r2444) to exmpp branch.
pubsub odbc isn't ported yet.  
Not tested (only basic node creation and configuration), should still have losts of bugs to discover.

SVN Revision: 2533
2009-08-25 17:14:30 +00:00
Christophe Romain eca4d9c963 resolve EJAB-1025, send notification when owner changed entity subscription
SVN Revision: 2532
2009-08-25 16:35:43 +00:00
Badlop 64976e18b3 Add command to update PubSub table of ejabberd trunk SVN.
If you use ejabberd trunk SVN, run this command:
ejabberdctl rename_default_nodeplugin

SVN Revision: 2531
2009-08-25 15:23:23 +00:00
Christophe Romain f303a40973 apply badlop's patch from http://www.ejabberd.im/node/3629
SVN Revision: 2530
2009-08-25 15:09:12 +00:00
Christophe Romain 3909f95ac1 added function to rename old default nodes to hometree
SVN Revision: 2529
2009-08-25 14:13:26 +00:00
Christophe Romain ca403c25e7 fix manage subscriptions owner's usecase
SVN Revision: 2528
2009-08-24 22:40:40 +00:00
Badlop 6470e6cc25 Write PID file, path is configurable in ejabberdctl.cfg (EJAB-1023)
SVN Revision: 2527
2009-08-24 21:21:39 +00:00
Badlop 1b81a2e3d6 Write PID file, path is configurable in ejabberdctl.cfg (EJAB-1023)
SVN Revision: 2526
2009-08-24 21:21:04 +00:00
Badlop 9769a17866 Document that the admin can install ejabberd.init script (EJAB-755)
SVN Revision: 2525
2009-08-24 19:59:44 +00:00
Badlop 19355e947e Prepare ejabberd.init when installing ejabberd.
SVN Revision: 2524
2009-08-24 19:59:30 +00:00
Badlop d9a8c89b5a Added preliminary template file for ejabberd.init (thanks to Christophe Romain)
SVN Revision: 2523
2009-08-24 19:59:17 +00:00
Badlop 342ea2753c Document that the admin can install ejabberd.init script (EJAB-755)
SVN Revision: 2522
2009-08-24 19:44:21 +00:00
Badlop 73282e0760 Prepare ejabberd.init when installing ejabberd.
SVN Revision: 2521
2009-08-24 19:44:07 +00:00
Badlop 11be369987 Added preliminary template file for ejabberd.init (thanks to Christophe Romain)
SVN Revision: 2520
2009-08-24 19:43:52 +00:00
Badlop ad7a8fffd5 Update Japanese translation (thanks to Tsukasa Hamano)
SVN Revision: 2519
2009-08-23 15:32:46 +00:00
Christophe Romain e6b05199a8 update pubsub_odbc.patch
SVN Revision: 2518
2009-08-21 11:54:22 +00:00
Badlop dabea295aa Comment -spec lines to compile with ancient Erlang/OTP versions.
SVN Revision: 2517
2009-08-21 10:24:21 +00:00
Badlop c8e7a4f4ac Modify exmpp header lines to compile with ancient Erlang/OTP versions.
SVN Revision: 2516
2009-08-21 09:27:34 +00:00
Evgeniy Khramtsov 6688b4ea78 do not include MAPPED-ADDRESS in new style responses since it is not required by the RFC
SVN Revision: 2515
2009-08-21 06:07:55 +00:00
Evgeniy Khramtsov 2a505d1d86 do not include MAPPED-ADDRESS in new style responses since it is not required by the RFC
SVN Revision: 2514
2009-08-21 06:07:04 +00:00
Badlop d05565c6e0 Show example config to disable account create/delete, and allow password change.
SVN Revision: 2513
2009-08-20 21:45:15 +00:00
Badlop 4be5c0c90c Show example config to disable account create/delete, and allow password change.
SVN Revision: 2512
2009-08-20 21:43:55 +00:00
Badlop ec26a28cd2 Merge 2427 from trunk: return timeout in requests if DB connection can't be established
SVN Revision: 2511
2009-08-20 17:37:37 +00:00
Badlop f9119a3ec6 Update Czech translation (thanks to Lukáš Polívka)
SVN Revision: 2510
2009-08-20 17:29:56 +00:00
Christophe Romain 49fe1399af add missing index while migrating old pubsub database
SVN Revision: 2509
2009-08-20 15:50:24 +00:00
Christophe Romain 56e52f0571 fixing pubsub_subscription issue when changed transaction to sync_dirty
SVN Revision: 2508
2009-08-20 13:07:58 +00:00
Badlop 7c76c65c8c Updated translation files.
SVN Revision: 2507
2009-08-19 21:48:53 +00:00
Badlop 1efdf914f3 Update Polish translation (thanks to Zbyszek Żółkiewski)
SVN Revision: 2506
2009-08-19 21:48:07 +00:00
Badlop 05755b9b09 Merge some old English fixes from trunk SVN.
SVN Revision: 2505
2009-08-19 17:59:49 +00:00
Badlop ea06dc92bc Explain how client can specify Pubsub plugin when creating node (thanks to Christophe Romain)
SVN Revision: 2504
2009-08-19 16:34:13 +00:00
Badlop df30831421 Update Pubsub's nodetree documentation (thanks to Christophe Romain)
SVN Revision: 2503
2009-08-19 15:44:29 +00:00
Badlop 6952aae506 Update Norwegian translation (thanks to Stian B. Barmen)
SVN Revision: 2502
2009-08-19 09:40:40 +00:00
Badlop 0a159a0850 Update Italian translation (thanks to Gabriele Stilli)
SVN Revision: 2501
2009-08-19 09:21:19 +00:00
Badlop 0a89bbaaa1 Update Dutch translation (thanks to Andreas van Cranenburgh)
SVN Revision: 2500
2009-08-18 17:10:28 +00:00
Badlop 0ec33b0868 Recompile guide.html
SVN Revision: 2499
2009-08-18 16:58:08 +00:00
Christophe Romain fd16591a2a added mod_pubsub_odbc documentation
SVN Revision: 2498
2009-08-18 10:14:49 +00:00
Christophe Romain b70b742a9e allow hometree pubsub plugin usage in default config, flat being default plugin anyway
SVN Revision: 2497
2009-08-17 20:27:28 +00:00
Christophe Romain f2bd9e01b0 fix create_node and subscribe_node glitches from last merge
SVN Revision: 2496
2009-08-17 20:25:31 +00:00
Badlop 007cafa7cd Fix EDoc errors.
SVN Revision: 2495
2009-08-17 17:17:34 +00:00
Badlop 45b12ec886 Fix EDoc errors.
SVN Revision: 2494
2009-08-17 17:16:43 +00:00
Badlop 0192913405 Update German translation (thanks to Nikolaus Polak)
SVN Revision: 2493
2009-08-17 16:52:50 +00:00
Badlop a9ce2fc38a Display room service messages in distintive blue colour.
SVN Revision: 2492
2009-08-15 22:03:14 +00:00
Badlop cf6d39487a Display room service messages in distintive blue colour.
SVN Revision: 2491
2009-08-15 22:02:49 +00:00
Badlop 0175932d86 Update Ingoing s2s connections inner state to hold domain name (thanks to Juan Pablo Carlino)(EJAB-972)
SVN Revision: 2490
2009-08-15 21:39:41 +00:00
Badlop 3571ef9767 Update Ingoing s2s connections inner state to hold domain name (thanks to Juan Pablo Carlino)(EJAB-972)
SVN Revision: 2489
2009-08-15 21:38:48 +00:00
Badlop 26cdea53c7 Don't allow room config to enable password protection with empty password (EJAB-1011)
SVN Revision: 2488
2009-08-15 20:11:24 +00:00
Badlop e585b07d76 If room config violates service policy, return not-acceptable instead of bad-request.
SVN Revision: 2487
2009-08-15 20:11:10 +00:00
Badlop 6eb5b544b4 Remove workarounds that supported R11 or older (EJAB-446)(EJAB-628)(EJAB-997)
SVN Revision: 2486
2009-08-15 20:10:49 +00:00
Badlop 3e45bdcc2d Don't allow room config to enable password protection with empty password (EJAB-1011)
SVN Revision: 2485
2009-08-15 20:09:05 +00:00
Badlop 5ddfccd45e If room config violates service policy, return not-acceptable instead of bad-request.
SVN Revision: 2484
2009-08-15 20:08:51 +00:00
Badlop 14e95f91d1 Update Ukraininan translation (thanks to Ruslan Rakhmanin)
SVN Revision: 2483
2009-08-15 17:48:53 +00:00
Evgeniy Khramtsov 2999a11f4b fixes disco#info
SVN Revision: 2482
2009-08-15 03:14:17 +00:00
Badlop 7fb6a4696a Update Galician translation (thanks to Carlos E. Lopez)
SVN Revision: 2481
2009-08-14 23:18:56 +00:00
Badlop 2e68058508 Update Slovak translation (thanks to Marek Bečka)
SVN Revision: 2480
2009-08-14 23:13:05 +00:00
Badlop 3f8a4a5756 Updated Portuguese-Brazil translation (thanks to Otávio Fernandes)
SVN Revision: 2479
2009-08-13 16:44:56 +00:00
Badlop f6258b2f46 Update Chinese translation (thanks to Shelley Shyan and Zhan Caibao)
SVN Revision: 2478
2009-08-13 13:48:35 +00:00
Evgeniy Khramtsov 9c0495b563 removed unnecessary gen_server call
SVN Revision: 2477
2009-08-13 10:02:04 +00:00
Evgeniy Khramtsov cbc78674e5 removed unnecessary gen_server call
SVN Revision: 2476
2009-08-13 09:59:31 +00:00
Badlop 1e148d4260 Updated Turkish translation (thanks to Doruk Fisek)
SVN Revision: 2475
2009-08-12 20:19:36 +00:00
Evgeniy Khramtsov 46ae4e7340 fixes fuzzy strings in Russian translation
SVN Revision: 2474
2009-08-12 15:09:31 +00:00
Badlop 2c25db28c4 Describe the options syntax, not only the name (EJAB-998)
SVN Revision: 2473
2009-08-12 14:18:47 +00:00
Badlop 695ff58c55 Describe the options syntax, not only the name (EJAB-998)
SVN Revision: 2472
2009-08-12 14:15:59 +00:00
Badlop 268fe029fd Update French translation (thanks to Nicolas Vérité)
SVN Revision: 2471
2009-08-12 14:15:07 +00:00
Badlop 3dc88feec9 Fix port in IRC register form.
SVN Revision: 2470
2009-08-12 11:37:05 +00:00
Evgeniy Khramtsov 5098964df0 updated Russian translation
SVN Revision: 2469
2009-08-12 11:31:51 +00:00
Badlop d3f9819c0f Update Spanish translation
SVN Revision: 2468
2009-08-12 10:42:42 +00:00
Badlop 06cee5a654 Update translation files again.
SVN Revision: 2467
2009-08-12 10:42:28 +00:00
Badlop 5438504fbf Fix english strings
SVN Revision: 2466
2009-08-12 10:42:08 +00:00
Badlop 56f525c475 Update translation files
SVN Revision: 2465
2009-08-12 10:12:16 +00:00
Badlop 14464ab6cc Add support in WebAdmin for the new listener network protocol
SVN Revision: 2464
2009-08-11 18:24:12 +00:00
Badlop a4b2d032f9 Add stun directory to compilation process
SVN Revision: 2463
2009-08-11 18:23:54 +00:00
Badlop 44ac69f8de Add support in WebAdmin for the new listener network protocol
SVN Revision: 2462
2009-08-11 18:22:58 +00:00
Badlop 60932b67b1 Add stun directory to compilation process
SVN Revision: 2461
2009-08-11 18:22:43 +00:00
Badlop 3078c28d1a Document STUN server (thanks to Evgeniy Khramtsov), and minor doc enhancements.
* Add stun listener to example config file, disabled.
* Improve enumeration of listeners options

SVN Revision: 2460
2009-08-11 13:22:39 +00:00
Evgeniy Khramtsov cf90c8176e updated top supervisor for STUN support
SVN Revision: 2459
2009-08-11 13:17:46 +00:00
Evgeniy Khramtsov 0a8bcf6530 restore missing stun directory
SVN Revision: 2458
2009-08-11 12:54:40 +00:00
Evgeniy Khramtsov bf0dbeb8b3 STUN support backport
SVN Revision: 2457
2009-08-11 12:53:46 +00:00
Badlop b453ee5e1f Update URLs of IETF and XMPP protocol documents
SVN Revision: 2456
2009-08-11 11:49:54 +00:00
Badlop 208ec6c076 Update URLs of IETF and XMPP protocol documents
SVN Revision: 2455
2009-08-11 11:41:15 +00:00
Badlop 3eaf796cca More documentation for STUN server.
* Add stun listener to example config file, disabled.
* Improve enumeration of listeners options
* Mention STUN in release notes
* Mention new STUN listener in release notes
* Mention new network protocol syntax in release notes

SVN Revision: 2454
2009-08-11 11:22:57 +00:00
Evgeniy Khramtsov 0c2222745f STUN support is now documented
SVN Revision: 2453
2009-08-11 10:13:03 +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 d967054a9f do not forget to close TLS socket
SVN Revision: 2451
2009-08-10 02:20:05 +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 2e8fe6a1ab Add ejabberd command to get the current loglevel (EJAB-1004)
SVN Revision: 2449
2009-08-07 14:56:12 +00:00
Badlop e0be566491 ejabberdctl commands use _ instead of -. For backwards compatibility - is still supported.
SVN Revision: 2448
2009-08-07 14:55:08 +00:00
Badlop 5490d7efe8 Add ejabberd command to get the current loglevel (EJAB-1004)
SVN Revision: 2447
2009-08-07 14:51:55 +00:00
Badlop 0e8dd70ed5 Added port and password connection parameters (thanks to Anton Podavalov)(EJAB-339)
SVN Revision: 2446
2009-08-07 14:43:44 +00:00
Badlop dd2be928af Added preliminary Release Notes for ejabberd 2.1.0
SVN Revision: 2445
2009-08-07 14:43:40 +00:00
Christophe Romain 29cb0ae7ba do not create hometree node by default
SVN Revision: 2444
2009-08-07 14:10:08 +00:00
Christophe Romain 14b22a4f98 add new pubsub modules in win32 Makefile
SVN Revision: 2443
2009-08-07 13:37:29 +00:00
Badlop c1d2a9305a mod_pubsub_odbc.erl is autogenerated by applying a patch to mod_pubsub.erl
SVN Revision: 2442
2009-08-07 13:17:34 +00:00
Badlop 6b6cb345ba To use import/export XEP-0227 feature, exmpp 0.9.1 or higher is required.
SVN Revision: 2441
2009-08-07 10:22:11 +00:00
Badlop 54ff94e3e3 ejabberdctl commands use _ instead of -. For backwards compatibility - is still supported.
SVN Revision: 2440
2009-08-07 10:22:06 +00:00
Badlop f9a8b9ff31 Add support for XEP-227 import/export, requires exmpp to use it (EJAB-993)
SVN Revision: 2439
2009-08-07 09:52:45 +00:00
Christophe Romain 0b03106946 typo fix on subscriptions
SVN Revision: 2438
2009-08-07 08:29:24 +00:00
Christophe Romain 5598d34478 initial merge of pubsub odbc, compilation pass ok
SVN Revision: 2437
2009-08-07 08:26:47 +00:00
Badlop 936b2d4188 Merge 2426 from trunk: add get/0 API function that returns current log level (EJAB-1004).
SVN Revision: 2436
2009-08-06 22:01:01 +00:00
Badlop 9a204593e1 Merge 2425 from trunk: fix keepalive query, broken by r2092.
SVN Revision: 2435
2009-08-06 21:57:53 +00:00
Badlop 6aa4bb9f08 Merge 2422, 2423: cosmetic change, fix shell function syntax (EJAB-1003), use variable for Erlang shell.
SVN Revision: 2434
2009-08-06 21:54:10 +00:00
Badlop 562e63a3b0 Fix argument passing
SVN Revision: 2433
2009-08-06 21:15:15 +00:00
Badlop 663e29af89 Document options for Roster Versioning (EJAB-964)
SVN Revision: 2432
2009-08-06 21:07:23 +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
Badlop 0ad45b1a93 Document options for Roster Versioning (EJAB-964)
SVN Revision: 2430
2009-08-06 21:06:20 +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 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
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
Jérôme Sautret 59c88fcfe7 * src/odbc/ejabberd_odbc_sup.erl: make requests return a timeout if
connections to the database cannot be established (EJABS-990).
* src/odbc/ejabberd_odbc.erl: cosmetic changes.

SVN Revision: 2427
2009-08-06 15:06:08 +00:00
Jérôme Sautret 0cc9d8f8a0 * src/ejabberd_loglevel.erl: add get/0 API function that returns current log level (EJAB-1004).
SVN Revision: 2426
2009-08-06 10:56:55 +00:00
Jérôme Sautret 95239baf85 * src/odbc/ejabberd_odbc.erl: fix keepalive query, broken by r2092.
SVN Revision: 2425
2009-08-06 10:23:32 +00:00
Christophe Romain 3625681cf4 cosmetic change
SVN Revision: 2423
2009-08-06 09:47:16 +00:00
Jérôme Sautret 16be92cc9f * tools/ejabberdctl: fix shell function syntax (EJAB-1003).
* tools/ejabberdctl: use a variable for Erlang shell.

SVN Revision: 2422
2009-08-06 09:40:22 +00:00
Badlop 6aa3706bec Support XEP-0227 Portable Import/Export (EJAB-993)
SVN Revision: 2421
2009-08-05 18:23:54 +00:00
Pablo Polvorin 92ad67a814 Fix problems when deleting a roster item.
The deleted item was left on the user roster, and unsubscribe presence stanza wasn't sent to the unsubscribed user.

SVN Revision: 2420
2009-08-05 17:39:47 +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 a321ab3653 Document the new option s2s_dns_options, expressed in seconds (EJAB-994)
SVN Revision: 2418
2009-08-03 15:04:52 +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
Christophe Romain 9fbef39193 fix is_last_item_cache_enabled issue with PEP, and fix indentation
SVN Revision: 2416
2009-07-31 14:55:05 +00:00
Evgeniy Khramtsov ce3fa18fb6 fixes incorrect substitution of an LDAP pattern
SVN Revision: 2415
2009-07-31 06:43:17 +00:00
Evgeniy Khramtsov fc0209fec9 fixes incorrect substitution of an LDAP pattern
SVN Revision: 2414
2009-07-31 06:32:24 +00:00
Christophe Romain 6bd9bac716 deny node creation if node owner is not owner of parent node as well
SVN Revision: 2413
2009-07-30 22:00:41 +00:00
Christophe Romain 26ace9829a typo fix
SVN Revision: 2412
2009-07-30 21:37:19 +00:00
Christophe Romain 31d6fe3c7d do not store item when persist_item false but send_last_published_item and last_item_cache enabled
SVN Revision: 2411
2009-07-30 21:00:44 +00:00
Badlop 4064e933fe ejabberd 3.0.0 will require Erlang/OTP R12B-4 or higher, or R13B or higher (EJAB-997)
SVN Revision: 2410
2009-07-30 18:29:46 +00:00
Badlop f5868a0952 Delete expat_erl, stringprep, xml and xml_stream; replaced by exmpp (EJAB-991)
SVN Revision: 2409
2009-07-30 17:57:56 +00:00
Christophe Romain b08c061683 fix configuration result (EJAB-995)
SVN Revision: 2408
2009-07-30 13:13:22 +00:00
Evgeniy Khramtsov 35c1c3774c do not crash on unmatched request
SVN Revision: 2407
2009-07-30 13:10:01 +00:00
Evgeniy Khramtsov cd68e0021e do not crash on unmatched request
SVN Revision: 2406
2009-07-30 13:08:26 +00:00
Geoff Cant 628b03f3c0 EJAB-994: Implements DNS timeouts and retries.
SVN Revision: 2405
2009-07-30 12:35:18 +00:00
Geoff Cant f4330e9ed3 EJAB-994: Implements DNS timeouts and retries.
SVN Revision: 2404
2009-07-30 12:34:59 +00:00
Badlop ea96fe3fd1 Document mod_ping in the ejabberd Guide (EJAB-974)(EJAB-173)
SVN Revision: 2403
2009-07-30 11:45:54 +00:00
Evgeniy Khramtsov 548be039b3 implemented timeout_action: none | kill. default is none
SVN Revision: 2402
2009-07-30 10:25:54 +00:00
Evgeniy Khramtsov 458b28eeff XMPP Ping support (thanks to Brian Cully)
SVN Revision: 2401
2009-07-30 08:58:21 +00:00
Evgeniy Khramtsov c6f3fbb82c treap.erl backport
SVN Revision: 2400
2009-07-29 03:43:58 +00:00
Evgeniy Khramtsov a528c62bba update existing key instead of dropping an error
SVN Revision: 2398
2009-07-29 03:40:56 +00:00
Geoff Cant bf10d1e956 EJAB-940: Implements reliable ODBC transaction nesting.
SVN Revision: 2397
2009-07-28 13:46:28 +00:00
Geoff Cant 504cc7b7dd EJAB-940: Implements reliable ODBC transaction nesting.
SVN Revision: 2396
2009-07-28 13:43:00 +00:00
Badlop e6205e8f26 Fix error when nick registration stanza doesn't contain Value.
SVN Revision: 2395
2009-07-27 09:37:24 +00:00
Badlop 1262b0e353 Fix error when nick registration stanza doesn't contain Value.
SVN Revision: 2394
2009-07-27 09:36:49 +00:00
Christophe Romain 9d9fca5e19 fix subscribers publish_model
SVN Revision: 2393
2009-07-25 10:58:49 +00:00
Christophe Romain ff1f4f5a35 fix get node configuration bug (Thanks to Brian Cully)
SVN Revision: 2392
2009-07-24 20:09:25 +00:00
Badlop 620a50223c New command to dump a table to text file.
SVN Revision: 2391
2009-07-23 15:23:26 +00:00
Badlop 646adbf186 Add support to delete content and delete table.
SVN Revision: 2390
2009-07-23 15:23:21 +00:00
Badlop 164e1520d4 New command to dump a table to text file.
SVN Revision: 2389
2009-07-23 15:23:08 +00:00
Badlop 140d938bc3 Add support to delete content and delete table.
SVN Revision: 2388
2009-07-23 15:23:02 +00:00
Badlop 73f2fc76d9 Log an error if HTTP request does not include Host header (EJAB-966)
SVN Revision: 2387
2009-07-23 14:51:16 +00:00
Badlop b3eb800be1 Log an error if HTTP request does not include Host header (EJAB-966)
SVN Revision: 2386
2009-07-23 14:50:58 +00:00
Evgeniy Khramtsov 553969f0fd delete/2 now does not crash when there is nothing to delete. fold/1 added
SVN Revision: 2385
2009-07-22 06:52:47 +00:00
Evgeniy Khramtsov 94a638da85 delete/2 now does not crash when there is nothing to delete. fold/1 added
SVN Revision: 2383
2009-07-22 06:46:07 +00:00
Christophe Romain fef762243c caps storage indexed on case insensitive jid
SVN Revision: 2382
2009-07-21 20:51:14 +00:00
Mickaël Rémond ee142c5fe1 Fix typo from EJAB-988
SVN Revision: 2381
2009-07-21 19:18:22 +00:00
Mickaël Rémond 46735f7c62 Fix typo from EJAB-988
SVN Revision: 2380
2009-07-21 19:17:32 +00:00
Badlop 97dfcb9fb0 HTML room logs: fix formatting of spaces; log config when disabling logging; display occupants (EJAB-986)
SVN Revision: 2379
2009-07-21 18:35:20 +00:00
Badlop 7dfdd5d654 HTML room logs: fix formatting of spaces; log config when disabling logging; display occupants (EJAB-986)
SVN Revision: 2378
2009-07-21 18:33:56 +00:00
Badlop 97ee31e751 Allow content types to be configured in ejabberd.cfg (EJAB-975)(thanks to Brian Cully)
SVN Revision: 2377
2009-07-21 17:32:29 +00:00
Badlop 5346a7df02 Allow content types to be configured in ejabberd.cfg (EJAB-975)(thanks to Brian Cully)
SVN Revision: 2376
2009-07-21 17:31:09 +00:00
Christophe Romain 46304da5d7 fix get_entity_subscriptions result match
SVN Revision: 2375
2009-07-20 15:19:51 +00:00
Badlop 338af10aaf moved some log reports from error to debug level (thanks to Evgeniy Khramtsov)
SVN Revision: 2374
2009-07-20 09:21:42 +00:00
Badlop 367365f816 moved some log reports from error to debug level (thanks to Evgeniy Khramtsov)
SVN Revision: 2373
2009-07-20 09:21:30 +00:00
Christophe Romain 360b4916b1 Implement pubsub#get-pending Ad Hoc Command (EJAB-955) (thanks to Brian Cully)
SVN Revision: 2372
2009-07-20 08:53:56 +00:00
Badlop 020a3e6d6b Revert workaround of EJAB-611 because it seems no longer required (EJAB-709)
SVN Revision: 2371
2009-07-17 21:47:26 +00:00
Badlop 480c98e991 Revert workaround of EJAB-611 because it seems no longer required (EJAB-709)
SVN Revision: 2370
2009-07-17 21:46:26 +00:00
Badlop 5e05ad03bb Support XEP-0157: Contact Addresses for XMPP Services (EJAB-235)
SVN Revision: 2369
2009-07-17 20:47:40 +00:00
Badlop 9df5639974 Support XEP-0157: Contact Addresses for XMPP Services (EJAB-235)
SVN Revision: 2368
2009-07-17 20:45:44 +00:00
Christophe Romain 2729285977 Fix updating pending subscriptions (EJAB-980)
SVN Revision: 2367
2009-07-17 19:58:42 +00:00
Badlop 8d988d1bd2 Store account number in internal auth of (EJAB-981)(thanks to Juan Pablo Carlino)
SVN Revision: 2366
2009-07-17 19:06:42 +00:00
Badlop 08a72c1693 Store account number in internal auth of (EJAB-981)(thanks to Juan Pablo Carlino)
SVN Revision: 2365
2009-07-17 19:05:55 +00:00
Christophe Romain c54fb0c9f2 Fix set-subscriptions to work with multi-subscribe (EJAB-977)
SVN Revision: 2364
2009-07-17 09:29:11 +00:00
Badlop f3db058fef If a command is already defined: log as Debug, not as Warning.
SVN Revision: 2363
2009-07-16 20:18:36 +00:00
Badlop d49fe6e60d If a command is already defined: log as Debug, not as Warning.
SVN Revision: 2362
2009-07-16 20:18:19 +00:00
Badlop 5413c72ed5 Update Galician translation (thanks to Carlos E. Lopez)
SVN Revision: 2361
2009-07-13 16:31:40 +00:00
Christophe Romain b31ca0cd36 prevent creating badxml when pubsub_state is not accessible
SVN Revision: 2360
2009-07-08 14:28:22 +00:00
Badlop b49a15efeb If directory /sbin is created, set permissions 755, not 750.
SVN Revision: 2359
2009-07-07 08:27:58 +00:00
Badlop 0287d50ff4 If directory /sbin is created, set permissions 755, not 750.
SVN Revision: 2358
2009-07-07 08:27:15 +00:00
Badlop be5b35e999 Temporary Debug and Ctl nodes must get nodename similar to destination.
SVN Revision: 2357
2009-07-06 14:11:35 +00:00
Badlop 30697ca0a1 Add -hidden flag when calling Debug or Ctl
SVN Revision: 2356
2009-07-06 14:11:31 +00:00
Badlop 5475f35f9f Temporary debug and ctl nodes must get nodename similar to destination.
SVN Revision: 2355
2009-07-06 14:09:03 +00:00
Badlop a7eb5a77eb Add -hidden flag when calling Debug or Ctl
SVN Revision: 2354
2009-07-06 14:08:57 +00:00
Christophe Romain fc55db403e XEP-0248 bugfix (EJAB-963) (Thanks to Brian Cully)
SVN Revision: 2353
2009-07-06 08:05:33 +00:00
Christophe Romain 67052929d5 make virtual nodes having default options
SVN Revision: 2352
2009-07-02 10:11:59 +00:00
Badlop 0e19ca68b4 Support XEP-0085 Chat State Notifications (EJAB-961)
SVN Revision: 2351
2009-06-30 19:33:09 +00:00
Badlop 4f0cd053c4 Support XEP-0085 Chat State Notifications (EJAB-961)
SVN Revision: 2350
2009-06-30 19:32:22 +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 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 16ca8d178d Add XEP82 Date Time, update XEP202 Entity Time and XEP203 Delayed Delivery (EJAB-234)
SVN Revision: 2347
2009-06-30 16:55:26 +00:00
Badlop cdac156f2e Add announcement of offline feature to service discovery (EJAB-234)
SVN Revision: 2346
2009-06-30 16:54:46 +00:00
Badlop 49688feaf2 Add XEP82 Date Time, update XEP202 Entity Time and XEP203 Delayed Delivery (EJAB-234)
SVN Revision: 2345
2009-06-30 16:51:25 +00:00
Badlop f145a32b79 Add announcement of offline feature to service discovery (EJAB-234)
SVN Revision: 2344
2009-06-30 16:51:15 +00:00
Christophe Romain 35dc60c534 minor bugfixes on dag nodes
SVN Revision: 2343
2009-06-29 21:46:13 +00:00
Badlop ba335346f2 Don't use lists:keyfind/3 bcause it was introduced only in recent R13A.
SVN Revision: 2342
2009-06-25 18:05:34 +00:00
Badlop 523239d5a7 Don't use lists:keyfind/3 bcause it was introduced only in recent R13A.
SVN Revision: 2341
2009-06-25 18:05:12 +00:00
Badlop 82b3790f85 Improve explanation about SSL for port 5223 and its option 'tls'.
SVN Revision: 2340
2009-06-25 18:03:29 +00:00
Badlop edb5211f5f Improve explanation about SSL for port 5223 and its option 'tls'.
SVN Revision: 2339
2009-06-25 18:02:23 +00:00
Badlop 52c0fd8f09 Add note about PAM configuration for pam_winbind (thanks to Jon Bendtsen)
SVN Revision: 2338
2009-06-25 17:09:06 +00:00
Badlop 2159829168 Add note about PAM configuration for pam_winbind (thanks to Jon Bendtsen)
SVN Revision: 2337
2009-06-25 17:07:15 +00:00
Badlop e37b26e068 Improvements in the WebAdmin browsing menus.
SVN Revision: 2336
2009-06-25 17:04:03 +00:00
Badlop 6ac4157fc1 Add Vim folding
SVN Revision: 2335
2009-06-23 21:13:04 +00:00
Badlop 29a11c89b1 Improvements in the WebAdmin browsing menus.
SVN Revision: 2334
2009-06-23 21:00:43 +00:00
Badlop 46ff889bd3 Add Vim folding
SVN Revision: 2333
2009-06-23 20:45:39 +00:00
Badlop 6140047edf Change some translatable strings.
SVN Revision: 2332
2009-06-23 00:05:08 +00:00
Badlop b9cbb7a72b Detect auth errors and report in log file. Support auth when domain not provided.
SVN Revision: 2331
2009-06-22 23:14:18 +00:00
Badlop 34a490361f Detect auth errors and report in log file. Support auth when domain not provided.
SVN Revision: 2330
2009-06-22 22:58:52 +00:00
Badlop 0aca6920a7 ejabbed 3.0.0 requires exmpp 0.9.1 or higher.
SVN Revision: 2328
2009-06-17 09:07:02 +00:00
Badlop a6e8e10a3d Erlang/OTP R13B can be used, but its support is still experimental.
SVN Revision: 2327
2009-06-17 09:06:57 +00:00
Badlop bfbc69e8f9 Update version number to 3.0.0-alpha
SVN Revision: 2326
2009-06-17 09:06:52 +00:00
Badlop 534d6a49f9 Add forgotten optional requirement: Imagemagick's Convert.
SVN Revision: 2325
2009-06-17 09:05:22 +00:00
Badlop 13c76c12f8 Workaround to compile with exmpp
SVN Revision: 2324
2009-06-16 18:28:06 +00:00
Badlop 08ebf50480 Add permanent section about mod_http_fileserver to the Guide. Example config.
SVN Revision: 2323
2009-06-16 18:28:01 +00:00
Badlop a6b5e6360b Add unit test script for http-bind service (thanks to Stefan Strigler)
SVN Revision: 2322
2009-06-16 18:27:55 +00:00
Badlop b49f8a81a8 Add forgotten copyright and license notices.
SVN Revision: 2321
2009-06-16 18:27:51 +00:00
Badlop ab5b66facc Easier debugging (EJAB-936)(thanks to Michael Remond)
SVN Revision: 2320
2009-06-16 18:27:45 +00:00
Badlop 35c6ea68cc Code clean-up (EJAB-936)(thanks to Michael Remond)
SVN Revision: 2319
2009-06-16 18:27:40 +00:00
Badlop b74cb8828b Started code clean-up (EJAB-936)(thanks to Michael Remond)
SVN Revision: 2318
2009-06-16 18:27:35 +00:00
Badlop a1b84c6fa3 Replaced sha1 to hexadecimal transformation with sha:sha/1 call (thanks to Alexey Shchepin)
SVN Revision: 2317
2009-06-16 18:27:31 +00:00
Badlop 3e3d01063d Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2316
2009-06-16 18:27:27 +00:00
Badlop c19cc61c48 Simplified code.(thanks to Michael Remond)
SVN Revision: 2315
2009-06-16 18:27:24 +00:00
Badlop 5854edafdd Properly warn user and admin when mod_http_bind is not started.(thanks to Michael Remond)
SVN Revision: 2314
2009-06-16 18:27:18 +00:00
Badlop 2c33e72eea Do not clear input when dispatching a get when we have nothing to output. (thanks to Geoff Cant)
SVN Revision: 2313
2009-06-16 18:27:14 +00:00
Badlop 24ab5026c9 Changed the place where database is created(thanks to Michael Remond)
SVN Revision: 2312
2009-06-16 18:27:10 +00:00
Badlop c74ef80f79 Fix remote-stream-error stanzas
SVN Revision: 2311
2009-06-16 18:27:05 +00:00
Badlop eeb11046d5 New option max_inactivity to configure maximum inactivity period (EJAB-512)
SVN Revision: 2310
2009-06-16 18:27:01 +00:00
Badlop 66f3f0f3de Fix warning of unused Host variable
SVN Revision: 2309
2009-06-16 18:26:57 +00:00
Badlop a1bce24461 Include condition in http-bind terminate body when service stops (EJAB-792)
SVN Revision: 2308
2009-06-16 18:26:53 +00:00
Badlop 1c2d0afd95 Fix unknown rid error (thanks to Jerome Sautret)
SVN Revision: 2307
2009-06-16 18:26:48 +00:00
Badlop 6e52ca3f4e Implement packets reordering to avoid race conditions (EJAB-724).(thanks to Michael Remond)
SVN Revision: 2306
2009-06-16 18:26:44 +00:00
Badlop 1d1f72fdc2 Updated IP retrieving (thanks to Alexey Shchepin)
SVN Revision: 2305
2009-06-16 18:26:40 +00:00
Badlop d25bd8c1c6 Improve ip fetching patch (thanks to Christohpe Romain)
SVN Revision: 2304
2009-06-16 18:26:36 +00:00
Badlop 3e0827deea Retrieve correct IP from http connection (thanks to Christohpe Romain)
SVN Revision: 2303
2009-06-16 18:26:31 +00:00
Badlop 481c7ea4e6 Fix syntax error. (thanks to Jerome Sautret)
SVN Revision: 2302
2009-06-16 18:26:27 +00:00
Badlop 646477be08 Removed HTTP bind session count. Removed the 'sponsored bind session' text. (thanks to Michael Remond)
Details:
Removed the HTTP bind session count because it leaks information on the size of the platform.
Removed the text 'sponsored by Mabber' because it is confusing, as people could think a third-party service using HTTP bind is sponsored by Mabber.

SVN Revision: 2301
2009-06-16 18:26:23 +00:00
Badlop 3e2c626696 Do not display error message when starting several hosts (EJAB-571) (thanks to Christohpe Romain)
SVN Revision: 2300
2009-06-16 18:26:19 +00:00
Badlop 38ce8b494e Provide explanation in error message when module is already started for another vhost
SVN Revision: 2299
2009-06-16 18:26:15 +00:00
Badlop 292e2f6b69 Removed small warning
SVN Revision: 2298
2009-06-16 18:26:11 +00:00
Badlop 94c3a384b1 Bugfixes (thanks to Alexey Shchepin)
SVN Revision: 2297
2009-06-16 18:26:07 +00:00
Badlop 5f07b4bf9b Removed receive_loop (thanks to Alexey Shchepin)
SVN Revision: 2296
2009-06-16 18:26:02 +00:00
Badlop 68754c4b5d Remove Erlang module attribute 'vsn' because it does not provide any worth feature, and it difficults hot code update (EJAB-440)
SVN Revision: 2295
2009-06-16 18:25:59 +00:00
Badlop ff4ccc1d85 Bugfix when table does not exist (thanks to Justin Kirby)
SVN Revision: 2294
2009-06-16 18:25:54 +00:00
Badlop d84a2f8215 Migration code for people using previous version of the HTTP binding module (EJAB-390)
SVN Revision: 2293
2009-06-16 18:25:51 +00:00
Badlop 86738e965f Do not overwrite the stanza namespace (thanks to Anastasia Gornostaeva)
SVN Revision: 2292
2009-06-16 18:25:46 +00:00
Badlop 818f28d85f Support for c2s ACL access, max_stanza and shaper on http_poll connections (EJAB-243, EJAB-415, EJAB-416)(thanks to Michael Remond)
SVN Revision: 2291
2009-06-16 18:25:42 +00:00
Badlop 5f7356c16c The Erlang/OTP function httpd_util:to_lower/1 is deprecated, and it is recommended to use string:to_lower/1 instead.
SVN Revision: 2290
2009-06-16 18:25:38 +00:00
Badlop b0b708ddea Use DEBUG instead of INFO_MSG to keep log files small. Fix parse errors for grepping 'stream:error' (thanks to Stefan Strigler)
SVN Revision: 2289
2009-06-16 18:25:34 +00:00
Badlop 4adf23b4e9 Forgot keyword 'catch' when doing list_to_float on bosh version attribute for initial request (thanks to Stefan Strigler)
SVN Revision: 2288
2009-06-16 18:25:30 +00:00
Badlop 2f29e761c2 Fixes for pausing sessions; did not parse 'pause' attribute to int (thanks to Stefan Strigler)
SVN Revision: 2287
2009-06-16 18:25:26 +00:00
Badlop 8aede81188 Support pausing sessions (thanks to Stefan Strigler) (thanks to Stefan Strigler)
SVN Revision: 2286
2009-06-16 18:25:22 +00:00
Badlop c151da684d Comment-header: talk about xmpp over bosh rather than http binding (thanks to Stefan Strigler)
SVN Revision: 2285
2009-06-16 18:25:18 +00:00
Badlop bf4e927142 Removed debugging stuff. Removed error condition (thanks to Stefan Strigler)
SVN Revision: 2284
2009-06-16 18:25:14 +00:00
Badlop 7cb0b1a911 Code cleanup. Code reorganization. Store version of bosh session. Use bosh version for error conditions (thanks to Stefan Strigler)
SVN Revision: 2283
2009-06-16 18:25:10 +00:00
Badlop 6cbae7025c Store version as float (thanks to Stefan Strigler)
SVN Revision: 2282
2009-06-16 18:25:06 +00:00
Badlop 202bece16d Save bosh version with session (thanks to Stefan Strigler)
SVN Revision: 2281
2009-06-16 18:25:02 +00:00
Badlop f07df01185 Code rearranged (thanks to Stefan Strigler)
SVN Revision: 2280
2009-06-16 18:24:58 +00:00
Badlop 702978fa4b Make use of macros for namespaces. Some code cleanup. (thanks to Stefan Strigler)
SVN Revision: 2279
2009-06-16 18:24:54 +00:00
Badlop b79473b2f5 Fix for 'terminate' in request, send empty body instead of error (thanks to Stefan Strigler)
SVN Revision: 2278
2009-06-16 18:24:50 +00:00
Badlop 80b59441d5 Disabled debugging (thanks to Stefan Strigler)
SVN Revision: 2277
2009-06-16 18:24:46 +00:00
Badlop f422ec457a Some code cleanup (thanks to Stefan Strigler)
SVN Revision: 2276
2009-06-16 18:24:42 +00:00
Badlop 5048b6bdaf Bosh compliance: honor xmpp:version (thanks to Stefan Strigler)
SVN Revision: 2275
2009-06-16 18:24:38 +00:00
Badlop 01dc4611b9 Restore ejabberd directory structure (src/web) for integration as patch (thanks to Christohpe Romain)
SVN Revision: 2274
2009-06-16 18:24:34 +00:00
Badlop 5495516c30 We do not send a 'version' attribute at the stream header for now (thanks to Stefan Strigler)
SVN Revision: 2273
2009-06-16 18:24:30 +00:00
Badlop 2f8112b108 Prepare_response: fixed a dbg message. Changed http header (thanks to Stefan Strigler)
SVN Revision: 2272
2009-06-16 18:24:26 +00:00
Badlop 229c24e1f2 Implements sockname and peername for compatibility (thanks to Christohpe Romain)
SVN Revision: 2271
2009-06-16 18:24:22 +00:00
Badlop 832d59803a Reverted to r76 as 97 is completely broken and should not have been checked in at all (thanks to Stefan Strigler)
SVN Revision: 2270
2009-06-16 18:24:18 +00:00
Badlop 197639a34b Minor changes (thanks to Stefan Strigler)
SVN Revision: 2269
2009-06-16 18:24:14 +00:00
Badlop bb229a3a0c Disabled debug (thanks to Stefan Strigler)
SVN Revision: 2268
2009-06-16 18:24:09 +00:00
Badlop eca818be5a Deal with return values from starting/terminating supervisor (thanks to Stefan Strigler)
SVN Revision: 2267
2009-06-16 18:24:05 +00:00
Badlop 33896adf9d Disabled debug (thanks to Stefan Strigler)
SVN Revision: 2266
2009-06-16 18:24:01 +00:00
Badlop f5223b1643 Removed my own supervisor (thanks to Stefan Strigler)
SVN Revision: 2265
2009-06-16 18:23:57 +00:00
Badlop ecc2bbd752 Renamed some vars for (thanks to Stefan Strigler)
SVN Revision: 2264
2009-06-16 18:23:53 +00:00
Badlop d019405d51 Start supervisor here (thanks to Stefan Strigler)
SVN Revision: 2263
2009-06-16 18:23:49 +00:00
Badlop 7d62dff7e5 Make use of new api for plugable http based services (thanks to Stefan Strigler)
SVN Revision: 2262
2009-06-16 18:23:45 +00:00
Badlop dd8e4c620b Initial commit of HTTP-Bind source code (thanks to Stefan Striegler)
SVN Revision: 2261
2009-06-16 18:23:40 +00:00
Badlop 2594c7d687 Add permanent section about HTTP Bind module to the Guide. Example config.
SVN Revision: 2260
2009-06-16 17:48:38 +00:00
Badlop 38b342e36f Add unit test script for http-bind service (thanks to Stefan Strigler)
SVN Revision: 2259
2009-06-16 17:48:31 +00:00
Badlop 19fbe884d7 Add forgotten copyright and license notices.
SVN Revision: 2258
2009-06-16 17:48:27 +00:00
Badlop 95aa4653cb Easier debugging (EJAB-936)(thanks to Michael Remond)
SVN Revision: 2257
2009-06-16 17:48:22 +00:00
Badlop d950fb96b6 Code clean-up (EJAB-936)(thanks to Michael Remond)
SVN Revision: 2256
2009-06-16 17:48:18 +00:00
Badlop ada531bd8d Started code clean-up (EJAB-936)(thanks to Michael Remond)
SVN Revision: 2255
2009-06-16 17:48:13 +00:00
Badlop caf9c4f65e Replaced sha1 to hexadecimal transformation with sha:sha/1 call (thanks to Alexey Shchepin)
SVN Revision: 2254
2009-06-16 17:48:08 +00:00
Badlop 606e1982a9 Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2253
2009-06-16 17:48:04 +00:00
Badlop 660bbaee3d Simplified code.(thanks to Michael Remond)
SVN Revision: 2252
2009-06-16 17:48:00 +00:00
Badlop 65bc1122b2 Properly warn user and admin when mod_http_bind is not started.(thanks to Michael Remond)
SVN Revision: 2251
2009-06-16 17:47:56 +00:00
Badlop 7f8c01b150 Do not clear input when dispatching a get when we have nothing to output. (thanks to Geoff Cant)
SVN Revision: 2250
2009-06-16 17:47:51 +00:00
Badlop 20060d9cf6 Changed the place where database is created(thanks to Michael Remond)
SVN Revision: 2249
2009-06-16 17:47:47 +00:00
Badlop 67570668b6 Fix remote-stream-error stanzas
SVN Revision: 2248
2009-06-16 17:47:41 +00:00
Badlop 5fc16bc830 New option max_inactivity to configure maximum inactivity period (EJAB-512)
SVN Revision: 2247
2009-06-16 17:47:23 +00:00
Badlop feded4b0b7 Fix warning of unused Host variable
SVN Revision: 2246
2009-06-16 17:47:17 +00:00
Badlop 15a6e660b9 Include condition in http-bind terminate body when service stops (EJAB-792)
SVN Revision: 2245
2009-06-16 17:47:12 +00:00
Badlop 1ce4eb06a7 Fix unknown rid error (thanks to Jerome Sautret)
SVN Revision: 2244
2009-06-16 17:47:07 +00:00
Badlop 3e9b5d4ed4 Implement packets reordering to avoid race conditions (EJAB-724).(thanks to Michael Remond)
SVN Revision: 2243
2009-06-16 17:47:03 +00:00
Badlop b8478c50b9 Updated IP retrieving (thanks to Alexey Shchepin)
SVN Revision: 2242
2009-06-16 17:46:59 +00:00
Badlop e9ee9959a1 Improve ip fetching patch (thanks to Christohpe Romain)
SVN Revision: 2241
2009-06-16 17:46:55 +00:00
Badlop 2d9f715d65 Retrieve correct IP from http connection (thanks to Christohpe Romain)
SVN Revision: 2240
2009-06-16 17:46:51 +00:00
Badlop 44c2259a43 Fix syntax error. (thanks to Jerome Sautret)
SVN Revision: 2239
2009-06-16 17:46:46 +00:00
Badlop 17de26d800 Removed HTTP bind session count. Removed the 'sponsored bind session' text. (thanks to Michael Remond)
Details:
Removed the HTTP bind session count because it leaks information on the size of the platform.
Removed the text 'sponsored by Mabber' because it is confusing, as people could think a third-party service using HTTP bind is sponsored by Mabber.

SVN Revision: 2238
2009-06-16 17:46:42 +00:00
Badlop 154a0d1c96 Do not display error message when starting several hosts (EJAB-571) (thanks to Christohpe Romain)
SVN Revision: 2237
2009-06-16 17:46:37 +00:00
Badlop 1626ede210 Provide explanation in error message when module is already started for another vhost
SVN Revision: 2236
2009-06-16 17:46:33 +00:00
Badlop e14c3f4699 Removed small warning
SVN Revision: 2235
2009-06-16 17:46:29 +00:00
Badlop 9e309d2a38 Bugfixes (thanks to Alexey Shchepin)
SVN Revision: 2234
2009-06-16 17:46:25 +00:00
Badlop a00b7fd89b Removed receive_loop (thanks to Alexey Shchepin)
SVN Revision: 2233
2009-06-16 17:46:21 +00:00
Badlop d036802891 Remove Erlang module attribute 'vsn' because it does not provide any worth feature, and it difficults hot code update (EJAB-440)
SVN Revision: 2232
2009-06-16 17:46:16 +00:00
Badlop 0047e4192b Bugfix when table does not exist (thanks to Justin Kirby)
SVN Revision: 2231
2009-06-16 17:46:12 +00:00
Badlop 261b7dc0d9 Migration code for people using previous version of the HTTP binding module (EJAB-390)
SVN Revision: 2230
2009-06-16 17:46:08 +00:00
Badlop b42dd00a53 Do not overwrite the stanza namespace (thanks to Anastasia Gornostaeva)
SVN Revision: 2229
2009-06-16 17:46:03 +00:00
Badlop 4a83538cf6 Support for c2s ACL access, max_stanza and shaper on http_poll connections (EJAB-243, EJAB-415, EJAB-416)(thanks to Michael Remond)
SVN Revision: 2228
2009-06-16 17:45:59 +00:00
Badlop a314cdf26f The Erlang/OTP function httpd_util:to_lower/1 is deprecated, and it is recommended to use string:to_lower/1 instead.
SVN Revision: 2227
2009-06-16 17:45:55 +00:00
Badlop 51a55723cf Use DEBUG instead of INFO_MSG to keep log files small. Fix parse errors for grepping 'stream:error' (thanks to Stefan Strigler)
SVN Revision: 2226
2009-06-16 17:45:50 +00:00
Badlop 4dac8f437f Forgot keyword 'catch' when doing list_to_float on bosh version attribute for initial request (thanks to Stefan Strigler)
SVN Revision: 2225
2009-06-16 17:45:46 +00:00
Badlop 7bfd87bec6 Fixes for pausing sessions; did not parse 'pause' attribute to int (thanks to Stefan Strigler)
SVN Revision: 2224
2009-06-16 17:45:42 +00:00
Badlop bb26498faf Support pausing sessions (thanks to Stefan Strigler) (thanks to Stefan Strigler)
SVN Revision: 2223
2009-06-16 17:45:38 +00:00
Badlop 222cabb745 Comment-header: talk about xmpp over bosh rather than http binding (thanks to Stefan Strigler)
SVN Revision: 2222
2009-06-16 17:45:34 +00:00
Badlop c55ee29a24 Removed debugging stuff. Removed error condition (thanks to Stefan Strigler)
SVN Revision: 2221
2009-06-16 17:45:26 +00:00
Badlop 4cce314c11 Code cleanup. Code reorganization. Store version of bosh session. Use bosh version for error conditions (thanks to Stefan Strigler)
SVN Revision: 2220
2009-06-16 17:45:22 +00:00
Badlop 8a89b1737f Store version as float (thanks to Stefan Strigler)
SVN Revision: 2219
2009-06-16 17:45:16 +00:00
Badlop e7417c2f8b Save bosh version with session (thanks to Stefan Strigler)
SVN Revision: 2218
2009-06-16 17:45:12 +00:00
Badlop 4ebeb4d6d0 Code rearranged (thanks to Stefan Strigler)
SVN Revision: 2217
2009-06-16 17:45:09 +00:00
Badlop eea6a1a544 Make use of macros for namespaces. Some code cleanup. (thanks to Stefan Strigler)
SVN Revision: 2216
2009-06-16 17:44:59 +00:00
Badlop fbf4a7aa35 Fix for 'terminate' in request, send empty body instead of error (thanks to Stefan Strigler)
SVN Revision: 2215
2009-06-16 17:44:55 +00:00
Badlop 9b8d897b5f Disabled debugging (thanks to Stefan Strigler)
SVN Revision: 2214
2009-06-16 17:44:51 +00:00
Badlop f248cfd18d Some code cleanup (thanks to Stefan Strigler)
SVN Revision: 2213
2009-06-16 17:44:47 +00:00
Badlop 100befc771 Bosh compliance: honor xmpp:version (thanks to Stefan Strigler)
SVN Revision: 2212
2009-06-16 17:44:42 +00:00
Badlop 4ed01b98de Restore ejabberd directory structure (src/web) for integration as patch (thanks to Christohpe Romain)
SVN Revision: 2211
2009-06-16 17:44:38 +00:00
Badlop 68ae80ed2f We do not send a 'version' attribute at the stream header for now (thanks to Stefan Strigler)
SVN Revision: 2210
2009-06-16 17:44:34 +00:00
Badlop 0da3b27dfe Prepare_response: fixed a dbg message. Changed http header (thanks to Stefan Strigler)
SVN Revision: 2209
2009-06-16 17:44:29 +00:00
Badlop 3dbfd827bb Implements sockname and peername for compatibility (thanks to Christohpe Romain)
SVN Revision: 2208
2009-06-16 17:44:25 +00:00
Badlop 70fd795a1b Reverted to r76 as 97 is completely broken and should not have been checked in at all (thanks to Stefan Strigler)
SVN Revision: 2207
2009-06-16 17:44:13 +00:00
Badlop 2e402c27f4 Minor changes (thanks to Stefan Strigler)
SVN Revision: 2206
2009-06-16 17:44:08 +00:00
Badlop 673a7aad55 Disabled debug (thanks to Stefan Strigler)
SVN Revision: 2205
2009-06-16 17:44:04 +00:00
Badlop 88d32b1064 Deal with return values from starting/terminating supervisor (thanks to Stefan Strigler)
SVN Revision: 2204
2009-06-16 17:44:00 +00:00
Badlop 5b09c35dea Disabled debug (thanks to Stefan Strigler)
SVN Revision: 2203
2009-06-16 17:43:55 +00:00
Badlop 18f183e4e3 Removed my own supervisor (thanks to Stefan Strigler)
SVN Revision: 2202
2009-06-16 17:43:51 +00:00
Badlop 15b0841282 Renamed some vars for (thanks to Stefan Strigler)
SVN Revision: 2201
2009-06-16 17:43:47 +00:00
Badlop da6c4f9941 Start supervisor here (thanks to Stefan Strigler)
SVN Revision: 2200
2009-06-16 17:43:43 +00:00
Badlop 7ed7ca6e1e Make use of new api for plugable http based services (thanks to Stefan Strigler)
SVN Revision: 2199
2009-06-16 17:43:39 +00:00
Badlop bbe82647e8 Initial commit of HTTP-Bind source code (thanks to Stefan Striegler)
SVN Revision: 2198
2009-06-16 17:43:35 +00:00
Badlop 77a62670d3 Add permanent section about mod_http_fileserver to the Guide. Example config.
SVN Revision: 2197
2009-06-16 13:53:25 +00:00
Badlop 8e8b78a4c3 Add forgotten copyright and license notices.
SVN Revision: 2196
2009-06-16 13:53:18 +00:00
Badlop 249ee4b318 New option directory_indices, and improve logging (thanks to Brian Cully)(EJAB-932)
SVN Revision: 2195
2009-06-16 13:53:13 +00:00
Badlop 226bcd1360 Fix capitalization of HTTP headers (thanks to Brian Cully)(EJAB-892)
SVN Revision: 2194
2009-06-16 13:53:07 +00:00
Badlop 4956ed11f4 Converted to gen_server behaviour (EJAB-561). Use the general reopen_log_hook instead of ejabberdctl command.
SVN Revision: 2193
2009-06-16 13:53:02 +00:00
Badlop b44a3c7650 Fix ip source to comply with new ip storage into ejabberd_http (thanks to Christophe Romain)
SVN Revision: 2192
2009-06-16 13:52:57 +00:00
Badlop fa83147926 Use httpd_util:to_lower when not compiling with Erlang R12 (EJAB-628)
SVN Revision: 2191
2009-06-16 13:52:52 +00:00
Badlop 14afea1a20 Added JavaScript content type
SVN Revision: 2190
2009-06-16 13:52:47 +00:00
Badlop 4fdc4a2e06 Include Last-Modified HTTP header in responses to allow caching (EJAB-546) in mod_http_fileserver and mod_muc_log_http.
SVN Revision: 2189
2009-06-16 13:52:42 +00:00
Badlop 0864e8a24f Fix error creating ETS table if enabled in several vhosts (EJAB-551). Unregister the command when stopping the module.
SVN Revision: 2188
2009-06-16 13:52:37 +00:00
Badlop 6af85aea18 Remove Erlang module attribute 'vsn' because it doesn't provide any worth feature, and it difficults hot code update (EJAB-440)
SVN Revision: 2187
2009-06-16 13:52:32 +00:00
Badlop 0d4155b902 The Erlang/OTP function httpd_util:to_lower/1 is deprecated, and it's recommended to use string:to_lower/1 instead.
SVN Revision: 2186
2009-06-16 13:52:28 +00:00
Badlop 91193bf928 Small change in accesslog file format; fix bug when accesslog conf parameter wasn't present in the conf file (thanks to Jerome Sautret)
SVN Revision: 2185
2009-06-16 13:52:17 +00:00
Badlop b57248e822 Added accesslog parameter to record requests log in a file similar to Apache (thanks to Jerome Sautret)
SVN Revision: 2184
2009-06-16 13:52:12 +00:00
Badlop 487b80b9b0 Initial commit of mod_http_fileserver (thanks to Massimiliano Mirra)
SVN Revision: 2183
2009-06-16 13:52:07 +00:00
Badlop c34999cc96 Add permanent section about mod_http_fileserver to the Guide. Example config.
SVN Revision: 2182
2009-06-16 13:46:03 +00:00
Badlop e43271216f Add forgotten copyright and license notices.
SVN Revision: 2181
2009-06-16 13:45:57 +00:00
Badlop c4e80abeac New option directory_indices, and improve logging (thanks to Brian Cully)(EJAB-932)
SVN Revision: 2180
2009-06-16 13:45:51 +00:00
Badlop 1bcc001615 Fix capitalization of HTTP headers (thanks to Brian Cully)(EJAB-892)
SVN Revision: 2179
2009-06-16 13:45:46 +00:00
Badlop 83e96f155a Converted to gen_server behaviour (EJAB-561). Use the general reopen_log_hook instead of ejabberdctl command.
SVN Revision: 2178
2009-06-16 13:45:33 +00:00
Badlop 3681835668 Fix ip source to comply with new ip storage into ejabberd_http (thanks to Christophe Romain)
SVN Revision: 2177
2009-06-16 13:45:22 +00:00
Badlop d2684bc3e8 Use httpd_util:to_lower when not compiling with Erlang R12 (EJAB-628)
SVN Revision: 2176
2009-06-16 13:45:17 +00:00
Badlop c4ca19d313 Added JavaScript content type
SVN Revision: 2175
2009-06-16 13:45:12 +00:00
Badlop a9ab002f48 Include Last-Modified HTTP header in responses to allow caching (EJAB-546) in mod_http_fileserver and mod_muc_log_http.
SVN Revision: 2174
2009-06-16 13:45:03 +00:00
Badlop b416ed03c9 Fix error creating ETS table if enabled in several vhosts (EJAB-551). Unregister the command when stopping the module.
SVN Revision: 2173
2009-06-16 13:44:58 +00:00
Badlop 2190055a06 Remove Erlang module attribute 'vsn' because it doesn't provide any worth feature, and it difficults hot code update (EJAB-440)
SVN Revision: 2172
2009-06-16 13:44:53 +00:00
Badlop 7e426b9623 The Erlang/OTP function httpd_util:to_lower/1 is deprecated, and it's recommended to use string:to_lower/1 instead.
SVN Revision: 2171
2009-06-16 13:44:48 +00:00
Badlop bd106bd45f Small change in accesslog file format; fix bug when accesslog conf parameter wasn't present in the conf file (thanks to Jerome Sautret)
SVN Revision: 2170
2009-06-16 13:44:38 +00:00
Badlop 99fe76f8bc Added accesslog parameter to record requests log in a file similar to Apache (thanks to Jerome Sautret)
SVN Revision: 2169
2009-06-16 13:44:32 +00:00
Badlop eedef994a9 Initial commit of mod_http_fileserver (thanks to Massimiliano Mirra)
SVN Revision: 2168
2009-06-16 13:44:26 +00:00
Badlop 818a70bdd7 Do not include mod_irc, it can be found in ejabberd-modules SVN. Iconv not required. (EJAB-954)
SVN Revision: 2167
2009-06-16 11:27:33 +00:00
Mickaël Rémond 940f5be35e Fix syntax error in config file
SVN Revision: 2166
2009-06-16 00:49:09 +00:00
Mickaël Rémond 732ad47559 Fix syntax error in config file.
SVN Revision: 2165
2009-06-16 00:47:43 +00:00
Badlop 83ffe1989a Ad-hoc commands to join IRC channel, set nickname and encoding (thanks to Magnus Henoch)(EJAB-302)
SVN Revision: 2164
2009-06-15 18:56:52 +00:00
Badlop 88fd7b226a Add option to restrict max offline messages by Access and ACL (EJAB-951)
New option for mod_offline: access_max_user_messages.
The old option user_max_messages is no longer supported.

SVN Revision: 2163
2009-06-15 17:44:04 +00:00
Badlop e0370d89b4 Add option to restrict max offline messages by Access and ACL (EJAB-951)
New option for mod_offline: access_max_user_messages.
The old option user_max_messages is no longer supported.

SVN Revision: 2162
2009-06-15 17:43:18 +00:00
Badlop 2f6cea2be3 Fix warning about a case already covered.
SVN Revision: 2161
2009-06-15 17:27:11 +00:00
Badlop b4a1b4c8fb Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2160
2009-06-15 17:27:06 +00:00
Badlop de15168cdb Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2159
2009-06-15 17:26:48 +00:00
Christophe Romain ddd3e58f35 add greetings to Brian Cully for pubsub contribs
SVN Revision: 2158
2009-06-15 13:58:40 +00:00
Christophe Romain 50b73664e2 experimental patch including XEP-248 (thanks to Brian Cully)
SVN Revision: 2157
2009-06-15 13:45:40 +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 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 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 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 60f52b2cd8 Add forgotten copyright and license notices. Fix blackspaces.
SVN Revision: 2152
2009-06-09 10:56:49 +00:00
Badlop f767def249 Add forgotten copyright and license notices. Fix blackspaces.
SVN Revision: 2151
2009-06-09 10:56:14 +00:00
Badlop dd101c99e5 Malformed CAPTCHA response may crash a room. This is now fixed. (thanks to Evgeniy Khramtsov)
SVN Revision: 2150
2009-06-09 09:39:07 +00:00
Evgeniy Khramtsov 5583a3f7dc fixes typo in Russian translation
SVN Revision: 2149
2009-06-09 07:03:27 +00:00
Evgeniy Khramtsov b7fd730409 Malformed CAPTCHA response may crash a room. This is now fixed.
SVN Revision: 2148
2009-06-09 03:53:36 +00:00
Badlop 1266bf48e6 Update Spanish translation
SVN Revision: 2147
2009-06-05 15:22:29 +00:00
Badlop 459074fd97 Update French translation (thanks to Nicolas Vérité)
SVN Revision: 2146
2009-06-05 15:07:15 +00:00
Badlop 3b5a74b34e Update Russian translation (thanks to Evgeniy Khramtsov)
The translator improves ru.po Russian translation.
Later ru.msg is automatically obtained by calling: make translations

SVN Revision: 2145
2009-06-03 16:41:44 +00:00
Badlop 049b7c5d11 Update ejabberd.pot and *.po, compile *.msg. All this by calling: make translations
SVN Revision: 2144
2009-06-03 16:41:34 +00:00
Evgeniy Khramtsov 97e2b39b69 updated russian translation
SVN Revision: 2143
2009-06-03 15:39:30 +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 a45e6da3d0 Remove support of deprecated Disco Publish XEP-0030 (EJAB-904)
SVN Revision: 2141
2009-06-02 18:09:01 +00:00
Badlop 72b842d8d1 Remove support of deprecated Disco Publish XEP-0030 (EJAB-904)
SVN Revision: 2140
2009-06-02 18:07:59 +00:00
Badlop 2b6f45e4c1 Update some calls from jlib:make_jid to exmpp_jid:make
SVN Revision: 2139
2009-06-01 23:44:55 +00:00
Badlop 332de67fe2 Fix some calls to exmpp
SVN Revision: 2138
2009-06-01 21:04:16 +00:00
Badlop ff3fd02115 Fix Access check: the rule can be defined in a vhost or global.
SVN Revision: 2137
2009-06-01 21:04:11 +00:00
Badlop 05187325ee Fix Access check: the rule can be defined in a vhost or global.
SVN Revision: 2136
2009-06-01 18:04:18 +00:00
Karim Gemayel 437c9d07f5 API renaming : bare_jid_to_binary -> bare_to_binary
SVN Revision: 2135
2009-06-01 17:00:44 +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 7a884ced32 API renaming : bare_jid_to_list -> bare_to_list
SVN Revision: 2133
2009-06-01 16:54:33 +00:00
Karim Gemayel 0ace8bda8c API renaming : prepd_jid_to_list -> prep_to_list
SVN Revision: 2132
2009-06-01 16:53:48 +00:00
Karim Gemayel 15bc238297 API renaming : jid_to_list -> to_list
SVN Revision: 2131
2009-06-01 16:52:14 +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 4258b99b2b API renaming : lresource_as_list -> prep_resource_as_list
SVN Revision: 2128
2009-06-01 16:43:15 +00:00
Karim Gemayel 29c0e17ca2 API renaming : lresource -> prep_resource
SVN Revision: 2127
2009-06-01 16:42:07 +00:00
Karim Gemayel d51d9e9fff API renaming : lnode_as_list -> prep_node_as_list
SVN Revision: 2126
2009-06-01 16:40:51 +00:00
Karim Gemayel d5f2c41f26 API renaming : lnode -> prep_node
SVN Revision: 2125
2009-06-01 16:39:36 +00:00
Karim Gemayel 7eb395b87d API renaming : ldomain_as_list -> prep_domain_as_list
SVN Revision: 2124
2009-06-01 16:38:28 +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 a136192db2 API renaming : bare_jid_to_jid -> full
SVN Revision: 2121
2009-06-01 16:34:38 +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
Christophe Romain fa5b06f542 apply patch from EJAB-845
SVN Revision: 2118
2009-05-29 02:14:07 +00:00
Christophe Romain 7c45f8f053 fix nodetree virtual to allow node subscription
SVN Revision: 2117
2009-05-29 00:44:07 +00:00
Christophe Romain bf57f712da fix nodetree virtual to allow node subscription
SVN Revision: 2117
2009-05-29 00:44:07 +00:00
Christophe Romain 497d4d26bb make flat the default node plugin
SVN Revision: 2116
2009-05-29 00:27:26 +00:00
Christophe Romain c27d6fddf4 make flat the default node plugin
SVN Revision: 2116
2009-05-29 00:27:26 +00:00
Christophe Romain db6a8c2e05 fix ets table name change
SVN Revision: 2115
2009-05-29 00:13:21 +00:00
Christophe Romain 6bd70aaf09 fix ets table name change
SVN Revision: 2115
2009-05-29 00:13:21 +00:00
Christophe Romain a16230c9ca pubsub: added configuration option in guide.tex, added last item cache, use default node type if given type is not configured, make node_flat the default node plugin. caps: improve cache handling
SVN Revision: 2114
2009-05-28 23:21:50 +00:00
Christophe Romain cdd3ab17ae remove useless debug
SVN Revision: 2113
2009-05-28 23:02:02 +00:00
Christophe Romain 039d5b8367 pubsub: added configuration option in guide.tex, added last item cache, use default node type if given type is not configured, make node_flat the default node plugin. caps: improve cache handling
SVN Revision: 2112
2009-05-28 22:30:43 +00:00
Badlop 0bbbf468f0 Fix crashes when browsing some WebAdmin pages (EJAB-821)
SVN Revision: 2111
2009-05-27 17:29:58 +00:00
Badlop 9bcba6c8b8 Update CSS of WebAdmin menu
SVN Revision: 2110
2009-05-27 17:29:50 +00:00
Badlop a1fe76fb5b Support to select what modules to update. Split large function in smaller ones.
SVN Revision: 2109
2009-05-27 17:29:43 +00:00
Badlop af32a18b4b Update CSS of WebAdmin menu
SVN Revision: 2108
2009-05-27 17:29:01 +00:00
Badlop 4094482a9f Support to select what modules to update. Split large function in smaller ones.
SVN Revision: 2107
2009-05-27 17:28:55 +00:00
Pablo Polvorin dc613df3b1 Do not indent the resulting html. Indentation in exmpp is buggy, and there isn't a real adventage on indenting the generated html
SVN Revision: 2106
2009-05-27 15:02:44 +00:00
Christophe Romain 7f5cce8196 make get_items able to sort items in publish order (EJAB-824)
SVN Revision: 2105
2009-05-26 22:50:11 +00:00
Christophe Romain 45a8a0fb53 make get_items able to sort items in publish order (EJAB-824)
SVN Revision: 2105
2009-05-26 22:50:11 +00:00
Christophe Romain ffe2d532bf improve get_entity_* to work regardless of nodetree (EJAB-937)
SVN Revision: 2104
2009-05-26 21:50:13 +00:00
Christophe Romain aa210166c4 improve get_entity_* to work regardless of nodetree (EJAB-937)
SVN Revision: 2104
2009-05-26 21:50:13 +00:00
Badlop 43a3fef7bb Document how to setup CAPTCHA. Install example captcha.sh (EJAB-895)
SVN Revision: 2103
2009-05-26 17:20:50 +00:00
Badlop 55bebb0f62 Implement XEP-158 CAPTCHA Forms, support in mod_muc, sample script (thanks to Evgeniy Khramtsov)(EJAB-895)
SVN Revision: 2102
2009-05-26 17:20:09 +00:00
Badlop 29607291ae Added support for captcha feature disability (EJAB-895)
If the option captcha_cmd is set but captcha can't be created:
* show critical error at server start
* hide captcha option in room configuration form
* don't require occupants to fill captcha

SVN Revision: 2101
2009-05-26 11:53:58 +00:00
Badlop 5c00365550 Add label in captcha form. Improve translatable strings in captcha and muc room.
SVN Revision: 2100
2009-05-26 11:03:45 +00:00
Badlop 18ae44f930 Support LDAPS with TLS (EJAB-109)(thanks to Thomas Baden, Andy Harb, Sergei Golovan, Anton Podavalov)
SVN Revision: 2099
2009-05-25 17:16:54 +00:00
Badlop 31aa201ee8 Support LDAPS with TLS (EJAB-109)(thanks to Thomas Baden, Andy Harb, Sergei Golovan, Anton Podavalov)
SVN Revision: 2098
2009-05-25 17:15:48 +00:00
Badlop dc3899dfd9 Decrease proxy65 buffer sizes to 8192 bytes.
The original size of 65535 confused clients with tight
shapers (thanks to Evgeniy Khramtsov)

SVN Revision: 2097
2009-05-25 11:19:28 +00:00
Badlop 3ec3e78baa Decrease proxy65 buffer sizes to 8192 bytes.
The original size of 65535 confused clients with tight
shapers (thanks to Evgeniy Khramtsov)

SVN Revision: 2096
2009-05-25 11:17:11 +00:00
Mickaël Rémond b6b4b0cdf9 * trunk/src/odbc/ejabberd_odbc.erl: Fix typo (EJABS-859) (EJAB-940) (CR-EJAB-10)
* branches/road-to-exmpp/src/odbc/ejabberd_odbc.erl: Likewise.

SVN Revision: 2095
2009-05-21 16:43:33 +00:00
Mickaël Rémond 11c4dba442 * trunk/src/odbc/ejabberd_odbc.erl: Fix typo (EJABS-859) (EJAB-940) (CR-EJAB-10)
* branches/road-to-exmpp/src/odbc/ejabberd_odbc.erl: Likewise.

SVN Revision: 2095
2009-05-21 16:43:33 +00:00
Mickaël Rémond 8be73967fd * src/odbc/ejabberd_odbc.erl: Support for nested transactions (EJABS-859) (EJAB-940) (CR-EJAB-10)
SVN Revision: 2094
2009-05-21 16:28:49 +00:00
Mickaël Rémond 270662c07b * trunk/src/odbc/ejabberd_odbc.erl: Move trace to debug loglevel (EJAB-940) (EJABS-859) (CR-EJAB-10)
SVN Revision: 2093
2009-05-21 16:23:27 +00:00
Mickaël Rémond b8f094b080 * trunk/src/odbc/ejabberd_odbc.erl: Support for nested transaction (EJABS-859) (EJAB-940) (CR-EJAB-10)
SVN Revision: 2092
2009-05-21 16:19:33 +00:00
Christophe Romain 2e26b6bf8b PubSub: improve get_entity_* API
SVN Revision: 2091
2009-05-19 22:29:28 +00:00
Christophe Romain dffe808895 PubSub: improve get_entity_* API
SVN Revision: 2090
2009-05-19 21:59:15 +00:00
Badlop b473862da6 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: 2089
2009-05-19 09:39:13 +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 0a9581a375 LDAP bind attempts: log warnings and increase timeout after reject.
Merged from trunk SVN r2086:
Log warnings on unsuccessful LDAP bind attempts.
Increase timeout before the next LDAP bind attempt up to
five seconds if the last bind attempt was rejected by the
LDAP server ("soft" error) (thanks to Konstantin Khomoutov)

SVN Revision: 2087
2009-05-18 11:41:53 +00:00
Evgeniy Khramtsov 5f67072e06 * src/eldap/eldap.erl: log warnings on unsuccessful LDAP bind attempts. Increase timeout before the next LDAP bind attempt up to five seconds if the last bind attempt was rejected by the LDAP server ("soft" error). Thanks to Konstantin Khomoutov.
SVN Revision: 2086
2009-05-16 13:18:15 +00:00
Badlop 5bd67495ed Document how to convert Mnesia node name
SVN Revision: 2085
2009-05-15 22:57:40 +00:00
Badlop 23509c1688 New command to convert mnesia nodename, copied from OTP and Debian
SVN Revision: 2084
2009-05-15 22:56:55 +00:00
Badlop a63f548528 Allow to define additional Erlang options in ejabberdctl.cfg (thanks to Sergei Golovan)
SVN Revision: 2083
2009-05-15 22:56:13 +00:00
Badlop ee8ed2828a The --node argument overwrites the value of ejabberdctl.cfg
SVN Revision: 2082
2009-05-15 22:55:29 +00:00
Badlop 08ba5346db Document how to convert Mnesia node name
SVN Revision: 2081
2009-05-15 22:39:30 +00:00
Badlop 5a68b44be1 New command to convert mnesia nodename, copied from OTP and Debian
SVN Revision: 2080
2009-05-15 22:38:46 +00:00
Badlop dfc97beaef Allow to define additional Erlang options in ejabberdctl.cfg (thanks to Sergei Golovan)
SVN Revision: 2079
2009-05-15 22:10:53 +00:00
Badlop 4c1eefb791 The --node argument overwrites the value of ejabberdctl.cfg
SVN Revision: 2078
2009-05-15 22:08:00 +00:00
Badlop 8af1c41a3e Erlang/OTP R13 can be used, but its support is still experimental
SVN Revision: 2077
2009-05-15 13:38:14 +00:00
Badlop 35daf5df78 No longer edit ChangeLog, will be auto generated for ejabberd releases.
Added new call 'make changelog' which generates a ChangeLog file by
prepending to the old file obtained from SVN the new lines obtained
from SVN Log and formatted with svn2cl.
ChangeLog will be generated and included in ejabberd releases.

SVN Revision: 2076
2009-05-14 21:12:12 +00:00
Badlop e3eac4f00d No longer edit ChangeLog, will be auto generated for ejabberd releases.
Added new call 'make changelog' which generates a ChangeLog file by
prepending to the old file obtained from SVN the new lines obtained
from SVN Log and formatted with svn2cl.
ChangeLog will be generated and included in ejabberd releases.

SVN Revision: 2076
2009-05-14 21:12:12 +00:00
Mickaël Rémond 3ca2d4dab3 * src/ejabberd_debug.erl: Handled fprof based profiling (EJABS-872).
* src/ejabberd_app.erl: Likewise.

SVN Revision: 2075
2009-05-13 12:36:37 +00:00
Christophe Romain c12b1870b7 Fix bad transaction returncode in unsubscribe presence handler
SVN Revision: 2074
2009-05-12 21:00:05 +00:00
Christophe Romain 257efddd1b Fix bad transaction returncode in unsubscribe presence handler
SVN Revision: 2073
2009-05-12 20:57:38 +00:00
Christophe Romain fd36726357 Prevent race condition when calling get_caps while note_caps has not been handled yet (EJAB-934)
SVN Revision: 2072
2009-05-11 17:27:55 +00:00
Christophe Romain 20088d8a92 Prevent race condition when calling get_caps while note_caps has not been handled yet (EJAB-934)
SVN Revision: 2071
2009-05-11 17:16:25 +00:00
Mickaël Rémond 077b9cd4db * src/ejabberd_debug.erl: Handled fprof based profiling (EJABS-872).
* src/ejabberd_app.erl: Likewise.

SVN Revision: 2070
2009-05-11 16:48:56 +00:00
Christophe Romain 8dc1bb0659 handle Example 90 of XEP-0060 (EJAB-909), and make use of nodeAttr
SVN Revision: 2069
2009-05-08 01:28:17 +00:00
Christophe Romain 7e370d0201 handle Example 90 of XEP-0060 (EJAB-909), and make use of nodeAttr
SVN Revision: 2068
2009-05-08 01:18:02 +00:00
Christophe Romain 38413dc236 Allow to get subscriptions on a given node (EJAB-712), and presence based fixes
SVN Revision: 2067
2009-05-08 00:02:08 +00:00
Christophe Romain 90263cf0e7 Allow to get subscriptions on a given node (EJAB-712), and presence based fixes
SVN Revision: 2066
2009-05-07 23:35:59 +00:00
Badlop ef94ad36cd Merge 2063 from trunk.
* src/ejabberd_app.erl: Better support for profiling.
* src/ejabberd.erl: Likewise
* src/ejabberd_ctl.erl: Likewise
* src/ejabberd_debug.erl: Likewise

SVN Revision: 2064
2009-05-07 22:56:23 +00:00
Badlop 18af5f8675 Merge misplaced 2055 2058 and 2062 from ejabberd-2.0.4.
* src/ejabberd_app.erl: Better support for profiling.
* src/ejabberd.erl: Likewise
* src/ejabberd_ctl.erl: Likewise
* src/ejabberd_debug.erl: Likewise

SVN Revision: 2063
2009-05-07 22:46:51 +00:00
Christophe Romain e40e4298ca several pubsub fixes and improvements. also fixes EJAB-913 and EJAB-871
SVN Revision: 2061
2009-05-07 00:54:44 +00:00
Christophe Romain 299d6fe72f fix wrong date
SVN Revision: 2060
2009-05-07 00:14:53 +00:00
Christophe Romain 3d766c1cb5 several pubsub fixes and improvements. also fixes EJAB-913 and EJAB-871
SVN Revision: 2059
2009-05-07 00:09:02 +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 fec3742aaa Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2057
2009-05-06 16:54:43 +00:00
Badlop 69349925a3 * src/Makefile.in: Prevent Erlang R13B compilation warning:
behaviour X undefined (EJAB-920)

SVN Revision: 2056
2009-05-06 15:15:09 +00:00
Badlop 90abb578e6 * src/Makefile.in: Prevent Erlang R13B compilation warning:
behaviour X undefined (EJAB-920)

SVN Revision: 2056
2009-05-06 15:15:09 +00:00
Badlop 921c7ede0d * src/ejabberd_loglevel.erl: Use dynamic_compile instead of
ram_file_io_server. Support definition of loglevels with integer
or atom. (thanks to Geoff Cant)(EJAB-919)
* src/dynamic_compile.erl: Added erlang module that converts
string to binary loadable code by Mats Cronqvist, Chris Newcombe,
and Jacob Vorreuter.
* src/ram_file_io_server.erl: Remove file not longer useful.
* src/ejabberd.app: Likewise

SVN Revision: 2054
2009-05-06 14:51:51 +00:00
Badlop dff6e28b2d * src/ejabberd_loglevel.erl: Use dynamic_compile instead of
ram_file_io_server. Support definition of loglevels with integer
or atom. (thanks to Geoff Cant)(EJAB-919)
* src/dynamic_compile.erl: Added erlang module that converts
string to binary loadable code by Mats Cronqvist, Chris Newcombe,
and Jacob Vorreuter.
* src/ram_file_io_server.erl: Remove file not longer useful.
* src/ejabberd.app: Likewise

SVN Revision: 2054
2009-05-06 14:51:51 +00:00
Badlop e202ec009e * src/mod_muc/mod_muc_room.erl: Fix badarg return (EJAB-899)
SVN Revision: 2053
2009-05-03 11:26:18 +00:00
Badlop 9b370787c2 * src/mod_muc/mod_muc_room.erl: Fix badarg return (EJAB-899)
SVN Revision: 2053
2009-05-03 11:26:18 +00:00
Christophe Romain ced30acb20 backport pubsub/pep/caps optimizations from trunk
SVN Revision: 2052
2009-04-30 23:17:38 +00:00
Christophe Romain a4b715516e typo fix
SVN Revision: 2051
2009-04-30 21:36:33 +00:00
Christophe Romain 0ed0c45aba mod_caps: reduce memory and remove mnesia lock
SVN Revision: 2050
2009-04-30 21:09:45 +00:00
Christophe Romain 5ae96e4065 typo fix
SVN Revision: 2049
2009-04-30 08:47:21 +00:00
Christophe Romain f8780bc6ee PubSub/PEP API change for major optimization
SVN Revision: 2048
2009-04-30 05:18:06 +00:00
Badlop 3debaf99d8 * src/ejabberd_hooks.erl: Support distributed hooks (EJAB-829)
SVN Revision: 2047
2009-04-28 14:57:16 +00:00
Badlop b2659e4a6f * src/ejabberd_hooks.erl: Support distributed hooks (EJAB-829)
SVN Revision: 2047
2009-04-28 14:57:16 +00:00
Badlop 2908e5da19 Merge 1969 and 1970 from trunk.
* src/ejabberd_hooks.erl: anonymous functions support.

SVN Revision: 2046
2009-04-28 14:46:12 +00:00
Badlop e45e486fd2 * src/xml.erl: More verbose error reporting for
element_to_string (thanks to Magnus Henoch)(EJAB-301)

SVN Revision: 2045
2009-04-27 21:36:41 +00:00
Badlop 5afe7cfafb * src/translate.erl: Support additional files (EJAB-925)
* contrib/extract_translations/extract_translations.erl: Likewise
* contrib/extract_translations/prepare-translation.sh: Likewise

SVN Revision: 2044
2009-04-27 20:55:35 +00:00
Badlop 7c4e7dea4b * src/translate.erl: Support additional files (EJAB-925)
* contrib/extract_translations/extract_translations.erl: Likewise
* contrib/extract_translations/prepare-translation.sh: Likewise

SVN Revision: 2044
2009-04-27 20:55:35 +00:00
Badlop d7829a76ce * src/win32_dns.erl: Fix problem parsing some win32 dns (EJAB-927)
SVN Revision: 2043
2009-04-27 20:36:19 +00:00
Badlop 709a536fb7 * src/win32_dns.erl: Fix problem parsing some win32 dns (EJAB-927)
SVN Revision: 2043
2009-04-27 20:36:19 +00:00
Badlop ec779c001c * src/cyrsasl_digest.erl: Fix auth verification (EJAB-863)
SVN Revision: 2042
2009-04-27 20:24:21 +00:00
Badlop cabf128bbb * src/cyrsasl_digest.erl: Fix auth verification (EJAB-863)
SVN Revision: 2042
2009-04-27 20:24:21 +00:00
Badlop 028509c3a9 * src/jlib.erl: Fix recursive call to speedup base64
decoding (thanks to Jeffrey Rogiers)(EJAB-333)

SVN Revision: 2041
2009-04-27 19:17:17 +00:00
Badlop e1fd7c444e * src/jlib.erl: Fix recursive call to speedup base64
decoding (thanks to Jeffrey Rogiers)(EJAB-333)

SVN Revision: 2041
2009-04-27 19:17:17 +00:00
Christophe Romain fd5e312ed9 minor cosmetic fix
SVN Revision: 2040
2009-04-24 21:34:59 +00:00
Christophe Romain fc9ba11afe minor cosmetic fix
SVN Revision: 2040
2009-04-24 21:34:59 +00:00
Christophe Romain 6710d66a58 fix minor pubsub init glitch, and allow ejabberd_odbc to execute bloc of queries without transaction
SVN Revision: 2039
2009-04-24 10:32:41 +00:00
Christophe Romain bda111b145 fix minor pubsub init glitch, and allow ejabberd_odbc to execute bloc of queries without transaction
SVN Revision: 2038
2009-04-24 10:27:31 +00:00
Christophe Romain 1d44abfc8a improve send last published items spawning
SVN Revision: 2037
2009-04-22 23:01:51 +00:00
Christophe Romain eab7a509f9 improve send last published items spawning
SVN Revision: 2036
2009-04-22 22:19:41 +00:00
Badlop 0141779b9c * src/ejabberd.cfg.example: Fix English typos. Fix line length:
max 80 characters per line. Remove trailing blankspaces. Added
markers for Vim fold, you may want to add to $HOME/.vimrc this
line: set modeline
* src/ejabberdctl.cfg.example: Likewise

SVN Revision: 2035
2009-04-22 13:45:57 +00:00
Badlop 6acf7fb5ec * src/ejabberd.cfg.example: Fix English typos. Fix line length:
max 80 characters per line. Remove trailing blankspaces. Added
markers for Vim fold, you may want to add to $HOME/.vimrc this
line: set modeline
* src/ejabberdctl.cfg.example: Likewise

SVN Revision: 2035
2009-04-22 13:45:57 +00:00
Badlop 92b1e9d9ac * src/mod_muc/mod_muc.erl: Limit number of characters in Room ID,
Name and Description (EJAB-899)
* src/mod_muc/mod_muc_room.erl: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 2034
2009-04-22 12:05:10 +00:00
Badlop b59ecb83e8 * src/mod_muc/mod_muc.erl: Limit number of characters in Room ID,
Name and Description (EJAB-899)
* src/mod_muc/mod_muc_room.erl: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 2034
2009-04-22 12:05:10 +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 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 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
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
Badlop 39f71ab2ab * src/mod_shared_roster.erl: Support in API to add 'all' as member
of a group (thanks to Martin Langhoff)(EJAB-916)

SVN Revision: 2031
2009-04-22 10:40:11 +00:00
Badlop d7223ea6ef * src/mod_shared_roster.erl: Support in API to add 'all' as member
of a group (thanks to Martin Langhoff)(EJAB-916)

SVN Revision: 2031
2009-04-22 10:40:11 +00:00
Badlop 8654991333 * src/ejabberd_captcha.erl: If a problem appears while obtaining
the image, show error message (EJAB-895)

SVN Revision: 2030
2009-04-22 10:26:19 +00:00
Badlop a26a7463a0 * src/Makefile.in: Install example script captcha.sh (EJAB-895)
SVN Revision: 2029
2009-04-22 10:23:22 +00:00
Badlop 34df1f502c * src/ejabberd.cfg.example: Add CAPTCHA options (EJAB-895)
SVN Revision: 2028
2009-04-22 10:21:55 +00:00
Badlop 38f5b8f093 * doc/guide.tex: Add section to document how to setup CAPTCHA
support (EJAB-895)
* doc/guide.html: Likewise

SVN Revision: 2027
2009-04-22 10:20:13 +00:00
Christophe Romain 6e37389145 fix missing greetings
SVN Revision: 2026
2009-04-17 20:43:12 +00:00
Christophe Romain 0b8a6d92f8 fix missing greetings
SVN Revision: 2026
2009-04-17 20:43:12 +00:00
Badlop 554a9a72f1 * doc/guide.tex: Document new ejabberdctl option. New section that
documents AccessCommands. (EJAB-910)
* doc/guide.html: Likewise

SVN Revision: 2025
2009-04-17 13:53:20 +00:00
Badlop 621fab55e2 * doc/guide.tex: Document new ejabberdctl option. New section that
documents AccessCommands. (EJAB-910)
* doc/guide.html: Likewise

SVN Revision: 2025
2009-04-17 13:53:20 +00:00
Badlop fd967d6976 * src/ejabberd_ctl.erl: New option to require auth in ejabberdctl
and restrict what commands and arguments can execute (EJAB-910)
* src/ejabberd_config.erl: Likewise

SVN Revision: 2024
2009-04-17 13:48:59 +00:00
Badlop d22c483781 * src/ejabberd_ctl.erl: New option to require auth in ejabberdctl
and restrict what commands and arguments can execute (EJAB-910)
* src/ejabberd_config.erl: Likewise

SVN Revision: 2024
2009-04-17 13:48:59 +00:00
Badlop b451f07801 * src/ejabberd_commands.erl: API to restrict who can execute what
commands and arguments (EJAB-910)

SVN Revision: 2023
2009-04-17 13:43:15 +00:00
Badlop 5db572171b * src/ejabberd_commands.erl: API to restrict who can execute what
commands and arguments (EJAB-910)

SVN Revision: 2023
2009-04-17 13:43:15 +00:00
Badlop 5ca560d0bd * src/mod_caps.erl: Fix unbound variable
SVN Revision: 2022
2009-04-17 13:40:57 +00:00
Badlop f954d6829b * doc/guide.tex: Explain that the recommended Erlang/OTP version
is R12B-5, and R13 is not supported yet.
* doc/guide.html: Likewise
* README: Likewise

SVN Revision: 2021
2009-04-14 18:31:29 +00:00
Badlop 13fcbd6413 * doc/guide.tex: Explain that the recommended Erlang/OTP version
is R12B-5, and R13 is not supported yet.
* doc/guide.html: Likewise
* README: Likewise

SVN Revision: 2021
2009-04-14 18:31:29 +00:00
Badlop 1dad64a1cc * src/mod_muc/mod_muc_log.erl: Linkify also xmpp:..., as it was
done previously (thanks to Konstantin Khomoutov)(EJAB-850)

SVN Revision: 2020
2009-04-14 18:25:58 +00:00
Badlop 8782597c1a * src/mod_muc/mod_muc_log.erl: Linkify also xmpp:..., as it was
done previously (thanks to Konstantin Khomoutov)(EJAB-850)

SVN Revision: 2020
2009-04-14 18:25:58 +00:00
Christophe Romain 0770e0eee4 after check, last commit was useless
SVN Revision: 2019
2009-04-14 12:46:55 +00:00
Christophe Romain ab4750ec1e after check, last commit was useless
SVN Revision: 2019
2009-04-14 12:46:55 +00:00
Christophe Romain b519fdd3cb back to original caps patch which may be safer
SVN Revision: 2018
2009-04-14 10:13:05 +00:00
Christophe Romain e740cfcc47 minor change, back to original patch
SVN Revision: 2017
2009-04-14 09:48:34 +00:00
Christophe Romain 412f65a0cb minor typo fix
SVN Revision: 2016
2009-04-10 21:11:35 +00:00
Christophe Romain 08cbaf8ccf Better handling of presence hook and caps clean
SVN Revision: 2015
2009-04-10 13:21:37 +00:00
Christophe Romain cd6587d9df minor improvement for best readability
SVN Revision: 2014
2009-04-10 08:40:10 +00:00
Christophe Romain 549fa6e836 make sure caps table are clean on startup
SVN Revision: 2013
2009-04-10 08:01:08 +00:00
Christophe Romain 409ab48068 better hadling of presence in mod_caps
SVN Revision: 2012
2009-04-10 07:36:17 +00:00
Badlop 6b2a838e24 * src/msgs/pl.po: Fix some translations (thanks to Andrzej Smyk)
SVN Revision: 2011
2009-04-09 11:18:06 +00:00
Badlop 7d0de522dd * src/msgs/pl.po: Fix some translations (thanks to Andrzej Smyk)
SVN Revision: 2011
2009-04-09 11:18:06 +00:00
Badlop 854b448536 * src/mod_pubsub/mod_pubsub.erl: Announce PubSub features in the
server JID only if PEP is enabled (EJAB-905)

SVN Revision: 2010
2009-04-08 19:30:24 +00:00
Badlop b326b7eb74 * src/mod_pubsub/mod_pubsub.erl: Announce PubSub features in the
server JID only if PEP is enabled (EJAB-905)

SVN Revision: 2010
2009-04-08 19:30:24 +00:00
Badlop 2195e433dc * src/mod_muc/mod_muc.erl: English fixes (thanks to Glenn Sieb)
* src/mod_muc/mod_muc_log.erl: Likewise
* src/mod_muc/mod_muc_room.erl: Likewise
* src/mod_register.erl: Likewise
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 2009
2009-04-08 19:04:13 +00:00
Badlop f4c88768da * src/mod_muc/mod_muc.erl: English fixes (thanks to Glenn Sieb)
* src/mod_muc/mod_muc_log.erl: Likewise
* src/mod_muc/mod_muc_room.erl: Likewise
* src/mod_register.erl: Likewise
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 2009
2009-04-08 19:04:13 +00:00
Badlop d13be09524 * src/mod_pubsub/mod_pubsub.erl: Quickfix compilation errors.
SVN Revision: 2008
2009-04-08 18:58:11 +00:00
Badlop 4dd21545a0 * src/ejabberd_frontend_socket.erl: Fix compilation warnings and
add TODO comments.

SVN Revision: 2007
2009-04-08 18:56:11 +00:00
Badlop e34d6e3678 * src/mod_irc/mod_irc_connection.erl: Fix compilation warnings.
SVN Revision: 2006
2009-04-08 18:52:52 +00:00
Badlop 7c415f3fdf * src/mod_irc/mod_irc_connection.erl: Fix compilation warnings.
SVN Revision: 2006
2009-04-08 18:52:52 +00:00
Christophe Romain 5a6f837800 pubsub: prevent blocking when sending lots of items, send last items to connected resource only, and cosmetic changes
SVN Revision: 2005
2009-04-08 15:53:46 +00:00
Evgeniy Khramtsov f80c848692 * src/ejabberd_captcha.erl: fixed compilation warnings.
SVN Revision: 2004
2009-04-08 12:05:03 +00:00
Badlop 79247dad41 * doc/release_notes_2.0.5.txt: Added file for new release
SVN Revision: 2002
2009-04-01 10:37:18 +00:00
Badlop ad0565cf7c * doc/release_notes_2.0.5.txt: Added file for new release
SVN Revision: 2002
2009-04-01 10:37:18 +00:00
Badlop 46efb20947 * src/ejabberd_captcha.erl: Small code reorganization; export new
functions build_captcha_html/2 and check_captcha/2

SVN Revision: 2001
2009-03-30 11:55:31 +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 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
Christophe Romain 3e756f5d1c implement roster acces model (EJAB-780)
SVN Revision: 1997
2009-03-20 00:08:38 +00:00
Christophe Romain bc39341633 implement roster acces model (EJAB-780)
SVN Revision: 1997
2009-03-20 00:08:38 +00:00
Christophe Romain 026c4a2711 Allow more environment variable overrides in ejabberdctl (EJAB-891)
SVN Revision: 1996
2009-03-19 21:30:10 +00:00
Christophe Romain 1ac385f499 Allow more environment variable overrides in ejabberdctl (EJAB-891)
SVN Revision: 1995
2009-03-19 21:28:34 +00:00
Evgeniy Khramtsov b789ee630d * src/ejabberd_captcha.erl: moved all functions from ejabberd_captcha process. Use mnesia:transaction/1 where it is needed.
SVN Revision: 1994
2009-03-14 06:27:05 +00:00
Evgeniy Khramtsov 9aadefa5b0 * tools/captcha.sh: sample CAPTCHA script.
SVN Revision: 1993
2009-03-13 16:38:28 +00:00
Evgeniy Khramtsov 3834bcc07e * src/ejabberd_captcha.erl: fixes previous commit
SVN Revision: 1992
2009-03-13 16:02:59 +00:00
Evgeniy Khramtsov 7e924341e4 * src/ejabberd_captcha.erl: XEP-158 (CAPTCHA Forms).
* src/ejabberd_config.erl: likewise.
* src/ejabberd_sup.erl: likewise.
* src/jlib.hrl: likewise.
* src/web/ejabberd_http.erl: likewise.
* src/mod_muc/mod_muc_room.erl: CAPTCHA support.
* src/mod_muc/mod_muc_room.hrl: likewise.

SVN Revision: 1991
2009-03-13 16:01:46 +00:00
Badlop cd3556f195 Fix mistake when calling win32_dns.
SVN Revision: 1990
2009-03-11 18:36:27 +00:00
Badlop f214b8c528 Fix mistake when calling win32_dns.
SVN Revision: 1990
2009-03-11 18:36:27 +00:00
Badlop d0a6ae7855 * doc/release_notes_2.0.4.txt: Added file for new release
SVN Revision: 1987
2009-03-10 16:25:20 +00:00
Badlop a72023c03e * doc/release_notes_2.0.4.txt: Added file for new release
SVN Revision: 1987
2009-03-10 16:25:20 +00:00
Badlop b245d68568 * src/tls/tls_drv.c: Fix encryption problem for ejabberd_http
after timeout (thanks to Alexey Shchepin)(EJAB-880)

SVN Revision: 1986
2009-03-10 15:21:36 +00:00
Badlop d4b5e94635 * src/tls/tls_drv.c: Fix encryption problem for ejabberd_http
after timeout (thanks to Alexey Shchepin)(EJAB-880)

SVN Revision: 1986
2009-03-10 15:21:36 +00:00
Christophe Romain 2c4effe6ce typo fix on roster access_model
SVN Revision: 1985
2009-03-10 12:09:31 +00:00
Christophe Romain 064d1af5de typo fix on roster access_model
SVN Revision: 1984
2009-03-10 12:08:41 +00:00
Christophe Romain 5ed381fc58 Fix PEP with other domains and s2s (EJAB-825)
SVN Revision: 1982
2009-03-10 11:13:46 +00:00
Christophe Romain 51faa601fa Fix PEP with other domains and s2s (EJAB-825)
SVN Revision: 1980
2009-03-10 10:35:57 +00:00
Badlop 4c08e65fab * src/tls/tls_drv.c: Fix to support OpenSSL older than
0.9.8f (EJAB-877)(thanks to Jonathan Schleifer)
* doc/guide.tex: It is again supported OpenSSL older than 0.9.8f
* doc/guide.html: Likewise

SVN Revision: 1979
2009-03-09 19:17:53 +00:00
Badlop d28efabb79 * src/tls/tls_drv.c: Fix to support OpenSSL older than
0.9.8f (EJAB-877)(thanks to Jonathan Schleifer)
* doc/guide.tex: It is again supported OpenSSL older than 0.9.8f
* doc/guide.html: Likewise

SVN Revision: 1979
2009-03-09 19:17:53 +00:00
Badlop 4dde341c9d Merge 1925 from trunk.
* src/mod_proxy65/mod_proxy65_service.erl: if an ip option is not
defined, the module takes an IP address of a local
hostname (thanks to Evgeniy Khramtsov)

SVN Revision: 1978
2009-03-09 14:44:46 +00:00
Badlop ad7bca0e78 * src/Makefile.in: In SunOS, use different C flags (thanks to
Thomas)(EJAB-438)
* src/ejabberd_zlib/Makefile.in: Likewise
* src/mod_irc/Makefile.in: Likewise
* src/stringprep/Makefile.in: Likewise
* src/tls/Makefile.in: Likewise

SVN Revision: 1977
2009-03-07 09:52:26 +00:00
Badlop ed3cae6f11 * src/Makefile.in: In SunOS, use different C flags (thanks to
Thomas)(EJAB-438)
* src/ejabberd_zlib/Makefile.in: Likewise
* src/mod_irc/Makefile.in: Likewise
* src/stringprep/Makefile.in: Likewise
* src/tls/Makefile.in: Likewise

SVN Revision: 1977
2009-03-07 09:52:26 +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
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 d6820f2c2d * src/mod_privacy.erl: Temporary workaround to inconsistency
* src/mod_privacy_odbc.erl: Likewise

SVN Revision: 1975
2009-03-07 08:53:34 +00:00
Badlop cf4b7b36ee Merge 1856 from trunk.
* src/eldap/eldap.erl: moves waiting for response queries to
pending queue on an LDAP connection failure (thanks to Evgeniy
Khramtsov)

SVN Revision: 1974
2009-03-06 11:50:23 +00:00
Badlop d23ebd354b Merge 1855 from trunk.
* src/eldap/eldap.erl: implemented queue for pending
queries (thanks to Evgeniy Khramtsov)

SVN Revision: 1973
2009-03-06 11:42:56 +00:00
Badlop 66c60c4e6d Merge 1851 from trunk.
* src/eldap/eldap.erl: Close a connection on tcp_error (thanks to
Evgeniy Khramtsov)

SVN Revision: 1972
2009-03-06 11:39:12 +00:00
Evgeniy Khramtsov 06eb54fef8 * src/ejabberd_hooks.erl: fixed typo
SVN Revision: 1970
2009-03-06 10:03:29 +00:00
Evgeniy Khramtsov 0e8f56f0b3 * src/ejabberd_hooks.erl: anonymous functions support.
SVN Revision: 1969
2009-03-06 09:34:13 +00:00
Badlop 19b803bb03 * src/ejabberd_app.erl: In a Windows machine, explicitly add the
nameservers, as it seems Erlang does not do itself (EJAB-860)
* src/win32_dns.erl: Get name servers from Windows registy (thanks
to Geoff Cant)

SVN Revision: 1968
2009-03-05 20:03:18 +00:00
Badlop f826dc2f9f * src/ejabberd_app.erl: In a Windows machine, explicitly add the
nameservers, as it seems Erlang does not do itself (EJAB-860)
* src/win32_dns.erl: Get name servers from Windows registy (thanks
to Geoff Cant)

SVN Revision: 1968
2009-03-05 20:03:18 +00:00
Badlop 982f61774d * doc/guide.tex: Require OpenSSL 0.9.8f or higher (EJAB-877)
* doc/guide.html: Likewise

SVN Revision: 1967
2009-03-05 19:48:24 +00:00
Badlop 5cc3985b73 * doc/guide.tex: Require OpenSSL 0.9.8f or higher (EJAB-877)
* doc/guide.html: Likewise

SVN Revision: 1967
2009-03-05 19:48:24 +00:00
Badlop 7982492f50 * src/ejabberd_auth.erl: If anonymous auth is enabled, when
checking if the account already exists in other auth methods, take
into account if the auth method failed (EJAB-882)
* 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

SVN Revision: 1966
2009-03-04 18:34:02 +00:00
Badlop ea715129e9 * src/ejabberd_auth.erl: If anonymous auth is enabled, when
checking if the account already exists in other auth methods, take
into account if the auth method failed (EJAB-882)
* 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

SVN Revision: 1966
2009-03-04 18:34:02 +00:00
Badlop 7af7afc30e * src/mod_caps.erl: Fix two small compilation errors
SVN Revision: 1965
2009-03-04 09:55:20 +00:00
Christophe Romain ab2dc5877f Allow node creation without configure item
SVN Revision: 1964
2009-03-04 01:14:13 +00:00
Christophe Romain b3c39d120f Allow node creation without configure item
SVN Revision: 1963
2009-03-04 01:12:10 +00:00
Christophe Romain 592c98fd7a update pubsub version
SVN Revision: 1961
2009-03-04 01:04:51 +00:00
Christophe Romain 965585eb56 update pubsub version
SVN Revision: 1960
2009-03-04 01:04:28 +00:00
Christophe Romain facf17e689 Add roster subscriptions handling and make PEP events sent to all resources
SVN Revision: 1958
2009-03-03 23:26:07 +00:00
Christophe Romain 020d6a46c5 Add roster subscriptions handling and make PEP events sent to all resources
SVN Revision: 1956
2009-03-03 22:42:37 +00:00
Badlop 1db9642e4c Merge 1916 from trunk.
* src/ejabberd_listener.erl: Fix report message of 'undef' error

SVN Revision: 1955
2009-03-03 19:48:20 +00:00
Badlop 4df4527e77 Merge 1907 from trunk.
* src/ejabberd_listener.erl: Fix a minor compilation warning and
add EDoc comment

SVN Revision: 1954
2009-03-03 19:46:08 +00:00
Badlop dbf0bb209d Merge 1891 from trunk.
* src/ejabberd_listener.erl: When stopping a listener, don't stop
the listener supervisor (EJAB-874)

SVN Revision: 1953
2009-03-03 19:43:55 +00:00
Badlop 9a7c6b8be1 Merge 1884 from trunk.
* src/ejabberd_listener.erl: More error detections

SVN Revision: 1952
2009-03-03 19:40:55 +00:00
Badlop 36fc43c364 Merge 1883 from trunk.
* src/ejabberd_listener.erl: More error detections

SVN Revision: 1951
2009-03-03 19:39:36 +00:00
Badlop f80758f0de Merge 1882 from trunk.
* src/ejabberd_config.erl: Check certfiles are readable on server
start and listener start (EJAB-753)
* src/ejabberd_listener.erl: Likewise

SVN Revision: 1950
2009-03-03 19:38:13 +00:00
Badlop 25ef60a2c1 Merge 1875 from trunk.
* 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: 1949
2009-03-03 19:35:32 +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
Badlop 890b1c4f60 Merge 1834 from trunk.
* src/mod_privacy.erl: Only run roster_get_jid_info if privacy
list has subscription or group (thanks to George Hazan)(EJAB-851).
Sort items in privacy list by order before storing (EJAB-848)
* src/mod_privacy.hrl: Likewise
* src/mod_privacy_odbc.erl: Likewise

SVN Revision: 1947
2009-03-03 19:26:24 +00:00
Badlop 4046ecc99e Merge 1880 from trunk.
* src/mod_muc/mod_muc_room.erl: Owner of a password protected room
must provide the password, like other participants (EJAB-867)

SVN Revision: 1946
2009-03-03 19:07:24 +00:00
Badlop fe297e1dea Merge 1879 from trunk.
* src/mod_muc/mod_muc_log.erl: Prevent XSS in MUC logs by
linkifying only a few known protocols (EJAB-850)

SVN Revision: 1945
2009-03-03 19:03:56 +00:00
Badlop f0c0b2230a Merge 1878 from trunk.
* src/mod_muc/mod_muc.erl: Export function to create MUC
room (thanks to Eric Cestari) (EJAB-729)

SVN Revision: 1944
2009-03-03 19:01:24 +00:00
Badlop 23ec55975e Merge 1877 from trunk.
* src/mod_roster.erl: When account is deleted, cancel presence
subscription for all roster items (EJAB-790)
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 1943
2009-03-03 18:57:47 +00:00
Badlop 54da31e805 Merge 1874 from trunk.
* src/mod_shared_roster.erl: Fix bug: a pending subscription
request, and later the requester added to the roster due to a
shared roster group, that request could neither be accepted or
rejected (thanks to Brian Cully)(EJAB-869)

SVN Revision: 1942
2009-03-03 18:53:28 +00:00
Badlop b0f29b20db Merge 1876 from trunk.
* src/web/ejabberd_http_poll.erl: Allow configuration of session
timeout, using new global option http_poll_timeout (EJAB-135)
* doc/guide.tex: Document new option
* doc/guide.html: Likewise

SVN Revision: 1941
2009-03-03 18:49:02 +00:00
Badlop c13ed8c625 Merge 1872 from trunk.
* src/ejabberd_system_monitor.erl: Allow parametrizable watchdog
threshold: option watchdog_large_heap or chatting with the
watchdog bot (EJAB-545)
* src/ejabberd_config.erl: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1940
2009-03-03 18:45:26 +00:00
Badlop 79463d7f7d Merge 1873 from trunk.
* src/web/ejabberd_web_admin.erl: Show big integers with comma
separators for easy reading

SVN Revision: 1939
2009-03-03 18:29:53 +00:00
Badlop 77ff657351 Merge 1859 from trunk.
* src/web/ejabberd_web_admin.erl: Calls to the hook
webadmin_menu_node provide the node as first argument, and calls
to webadmin_menu_hostnode provide both the host and the node. Fix
call to make_menu_items, because webadmin_menu_node was called in
cases where webadmin_menu_hostnode should be called. Align to
right some table elements.

SVN Revision: 1938
2009-03-03 18:24:42 +00:00
Badlop 85412f0a41 Merge from trunk: 1835, 1836, 1842, 1843, 1854, 1858, 1860, 1861, and 1862.
* doc/Makefile: In Clean do not remove html. In new Distclean,
remove also html.

* doc/Makefile: When cleaning, remove contributed_modules.tex

* src/Makefile.in: Fix arguments to Install program

* doc/guide.tex: Provide only an example of language option
* doc/guide.html: Likewise

* doc/guide.tex: mod_muc can run in several nodes of cluster
* doc/guide.html: Likewise

* 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

* src/ejabberd_hooks.erl: Explanation in EDoc of some functions

* doc/guide.tex: Explain that account creation is only supported
by internal and odbc authentication methods
* doc/guide.html: Likewise

* src/Makefile.in: The path to the installed copy of ejabberd
Guide is set in the environment variable
EJABBERD_DOC_PATH (EJAB-837).
* src/web/ejabberd_web_admin.erl: Likewise
* src/ejabberdctl.template: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1937
2009-03-03 18:11:23 +00:00
Pablo Polvorin 54a6992ae0 Serialize s2s stanzas to iolist() rather than list()
SVN Revision: 1936
2009-03-02 15:48:01 +00:00
Pablo Polvorin 2c35514537 Correct include declaration (thanks to badlop). Bug was introduced in r1863
SVN Revision: 1935
2009-03-02 13:27:35 +00:00
Pablo Polvorin 7fea7b30b2 Elements and namespace for (XEP-0039) aren't know by exmpp ("http://jabber.org/protocol/stats" is represented as a list())
SVN Revision: 1934
2009-03-01 20:48:43 +00:00
Pablo Polvorin f0d55c9a3f Fix bug when clients connect using legacy ssl
(ejabberd_receiver:process_data/2 was called before initializing  the xmlstream).

SVN Revision: 1933
2009-03-01 20:18:42 +00:00
Pablo Polvorin 3336d66fc4 Host argument for ejabberd_hooks's functions must be in binary() format.
SVN Revision: 1932
2009-03-01 19:03:35 +00:00
Badlop 117b67a31c Fix small compilation error introduced in revision 1923
SVN Revision: 1931
2009-02-28 00:01:27 +00:00
Badlop 19d27258d9 * src/mod_pubsub/node_default.erl: Fix that non-subscriber could
fetch items from Authorize node (thanks to Brian Cully)(EJAB-873)

SVN Revision: 1930
2009-02-27 23:56:46 +00:00
Badlop 64f2945892 * src/mod_pubsub/node_default.erl: Fix that non-subscriber could
fetch items from Authorize node (thanks to Brian Cully)(EJAB-873)

SVN Revision: 1930
2009-02-27 23:56:46 +00:00
Pablo Polvorin 58e4b98d61 Fix small bug introduced in revision 1924.
SVN Revision: 1929
2009-02-27 21:09:44 +00:00
Badlop c73e87e9c8 Merge fix from trunk r1910
* src/web/ejabberd_http.erl: Added a workaround for inet:peername
returning 'ebadf'

SVN Revision: 1928
2009-02-27 16:19:19 +00:00
Badlop 3a5fb440cc * src/tls/tls_drv.c: S2S connection with STARTTLS fails to Gtalk
and recent Openfire (thanks to Philipp Hancke)(EJAB-877)

SVN Revision: 1926
2009-02-27 15:42:27 +00:00
Badlop 6482c11f92 * src/tls/tls_drv.c: S2S connection with STARTTLS fails to Gtalk
and recent Openfire (thanks to Philipp Hancke)(EJAB-877)

SVN Revision: 1926
2009-02-27 15:42:27 +00:00
Evgeniy Khramtsov b766109f66 * src/mod_proxy65/mod_proxy65_service.erl: if an ip option is not defined, the module takes an IP address of a local hostname.
SVN Revision: 1925
2009-02-27 03:22:40 +00:00
Christophe Romain f4a952032a cosmetic changes
SVN Revision: 1924
2009-02-27 03:19:53 +00:00
Christophe Romain 67e24366ee cosmetic changes
SVN Revision: 1923
2009-02-27 03:09:00 +00:00
Badlop dd5a7bcd54 * doc/guide.tex: No mention to the release date in ejabberd Guide
or release notes. The date of an ejabberd release is determined by
the date of the corresponding release announcement.

SVN Revision: 1922
2009-02-26 23:10:28 +00:00
Badlop c5c97a8edf * doc/guide.tex: No mention to the release date in ejabberd Guide
or release notes. The date of an ejabberd release is determined by
the date of the corresponding release announcement.

SVN Revision: 1922
2009-02-26 23:10:28 +00:00
Badlop 34f6de0c84 * src/mod_pubsub/mod_pubsub.erl: Fix incorrect implementation of
Pubsub payload requirements (thanks to Andy Skelton)(EJAB-823)

SVN Revision: 1921
2009-02-25 21:17:14 +00:00
Badlop fd26056d01 * src/mod_pubsub/mod_pubsub.erl: Fix incorrect implementation of
Pubsub payload requirements (thanks to Andy Skelton)(EJAB-823)

SVN Revision: 1921
2009-02-25 21:17:14 +00:00
Pablo Polvorin 2678342c4a mod_muc/mod_muc_log.erl: The logging code expect nicknames to be in list() format.
SVN Revision: 1920
2009-02-24 20:50:28 +00:00
Pablo Polvorin 0f53fea903 src/mod_echo.erl: Fix call to exmpp_xml:get_cdata_as_list/1.
SVN Revision: 1919
2009-02-24 20:25:57 +00:00
Pablo Polvorin 9b1e5928bd Remove unused var
SVN Revision: 1918
2009-02-24 20:07:32 +00:00
Pablo Polvorin 31ef821e46 Exmpp related fixed to the external components service.
SVN Revision: 1917
2009-02-24 18:52:37 +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
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
Pablo Polvorin acae6e20de * Use exmpp_jid:to_binary/1 when possible.
* ejabberd_odbc:escape/1 now can escape binaries too. This 
avoid the need to convert a binary value to list() just to 
sql-escape it. The escaped value returned is allways a list() 
(ejabberd's odbc drivers only works on lists())

SVN Revision: 1914
2009-02-23 19:45:55 +00:00
Christophe Romain 7a17baccac Do not call mod_caps:clear_caps as it breaks PubSub/PEP (EJAB-854)
SVN Revision: 1913
2009-02-23 15:58:21 +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
Alexey Shchepin b6208955f3 * src/web/ejabberd_http.erl: Added a workaround for inet:peername
returning 'ebadf'

SVN Revision: 1910
2009-02-23 05:25:10 +00:00
Pablo Polvorin 4956259124 src/mod_roster.erl: Bugfix in remove_user/2, values already in binary() format.
SVN Revision: 1909
2009-02-21 18:07:37 +00:00
Badlop a5f70e15a2 * src/ejabberd_auth.erl: Password is undefined when using digest
SVN Revision: 1908
2009-02-21 14:41:29 +00:00
Badlop e6324f8a02 Fix a minor compilation warning and add EDoc comment
SVN Revision: 1907
2009-02-21 11:24:08 +00:00
Pablo Polvorin 2df100213b mod_configure: Fix bug in form generation
SVN Revision: 1893
2009-02-20 16:34:56 +00:00
Pablo Polvorin e989d41d50 "remove_user" hook actualized to expect binary arguments.
Fix webadmin code that performs addition / removal  of users.

SVN Revision: 1892
2009-02-20 15:30:16 +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
Christophe Romain edc0a9ac87 fix nodetree plugin resolver, and backport last changes from trunk
SVN Revision: 1890
2009-02-19 11:29:01 +00:00
Christophe Romain 6e055f60de fix nodetree plugin resolver
SVN Revision: 1889
2009-02-19 11:25:56 +00:00
Pablo Polvorin 5334a2d965 Bugfix: mod_announce.erl:get_title/2 now accepts node argument in binary() or list() format.
SVN Revision: 1887
2009-02-18 18:14:06 +00:00
Pablo Polvorin 7c10f3422a src/web/ejabberd_web_admin.erl, src/web/ejabberd_web_admin.hrl:
Many exmpp related fixes. Fix a bug when displaying users lists, 
if we can't access the 'offline_msg' mnesia table (using mod_offline_odbc).
This fix should be temporal, we should find a better way to manage this
situation.

src/web/ejabberd_http.erl: Language must be in binary() format.

src/translate.erl: Remove a debug call to io:format/2.

src/ejabberd_sm.erl, src/mod_configure.erl, src/mod_disco.erl:
ejabberd_sm:get_user_resources/2 returns resources as binary().

src/ejabberd_sm.erl: Bugfix in get_user_info/3.

SVN Revision: 1886
2009-02-18 18:03:11 +00:00
Pablo Polvorin ea62092d6e src/ejabberd_auth.erl: Fix: for legacy authentication, the Digest parameters could be 'undefined'.
src/mod_muc/mod_muc_room.erl: Typo.
src/ejabberd_c2s.erl: Remove comment for an already done TODO.

SVN Revision: 1885
2009-02-18 13:48:06 +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 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
Badlop 22d87353be * src/mod_muc/mod_muc_room.erl: Owner of a password protected room
must provide the password, like other participants (EJAB-867)

SVN Revision: 1880
2009-02-16 15:57:02 +00:00
Badlop f6ddd8bc5b * src/mod_muc/mod_muc_log.erl: Prevent XSS in MUC logs by
linkifying only a few known protocols (EJAB-850)

SVN Revision: 1879
2009-02-16 15:32:54 +00:00
Badlop 2bd54854ec * src/mod_muc/mod_muc.erl: Export function to create MUC
room (thanks to Eric Cestari) (EJAB-729)

SVN Revision: 1878
2009-02-16 15:24:40 +00:00
Badlop b0e749eca5 * src/mod_roster.erl: When account is deleted, cancel presence
subscription for all roster items (EJAB-790)
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 1877
2009-02-16 14:49:20 +00:00
Badlop d0f1300a84 * src/web/ejabberd_http_poll.erl: Allow configuration of session
timeout, using new global option http_poll_timeout (EJAB-135)
* doc/guide.tex: Document new option
* doc/guide.html: Likewise

SVN Revision: 1876
2009-02-14 09:03:26 +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 d0fc8fe056 * src/mod_shared_roster.erl: Fix bug: a pending subscription
request, and later the requester added to the roster due to a
shared roster group, that request could neither be accepted or
rejected (thanks to Brian Cully)(EJAB-869)

SVN Revision: 1874
2009-02-13 23:01:41 +00:00
Badlop a06bffa413 * src/web/ejabberd_web_admin.erl: Show big integers with comma
separators for easy reading

SVN Revision: 1873
2009-02-13 22:13:34 +00:00
Badlop 3524172856 * src/ejabberd_system_monitor.erl: Allow parametrizable watchdog
threshold: option watchdog_large_heap or chatting with the
watchdog bot (EJAB-545)
* src/ejabberd_config.erl: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1872
2009-02-13 19:27:56 +00:00
Christophe Romain e977d099e2 prevent from calling get_vh_registered_users/2 when not available
SVN Revision: 1871
2009-02-13 15:01:55 +00:00
Christophe Romain d1001a99c2 prevent from calling get_vh_registered_users/2 when not available
SVN Revision: 1869
2009-02-13 13:28:10 +00:00
Christophe Romain bb13c9e8ab fix delete-items issue and manage-affiliations typo
SVN Revision: 1868
2009-02-09 13:37:58 +00:00
Jean-Sébastien Pédron bf82bac328 o Document the type of the argument(s) and the returned type of every
functions.
o  Add guardians expression to exported functions to ensure at an early
stage that we were given the right arguments.
o  Fix table conversion to exmpp; many fields were left as string(),
preventing matching from working correctly.
o  In user_roster_item_parse_query/4, fix a bug where the same variable
was used for two distinct purpose.
o  In user_roster_item_parse_query/4, fix a bad usage of
exmpp_jid:jid_to_list/1.

PR:		EJABP-1

SVN Revision: 1867
2009-02-06 13:43:40 +00:00
Jean-Sébastien Pédron 25bd2bc7fe Document the short JID type.
PR:		EJABP-1

SVN Revision: 1866
2009-02-06 13:35:40 +00:00
Jean-Sébastien Pédron 93b26d947c Add documentation stub for some types. This will be filled later.
PR:		EJABP-1

SVN Revision: 1865
2009-02-06 13:34:12 +00:00
Badlop ec31aef6cb * src/mod_pubsub/mod_pubsub.erl: The table pubsub_node in ejabberd
older than 2.0.2 had indexes for parentid and type. This is not
required since ejabberd 2.0.2, so those indexes can be
deleted. (EJAB-669)

SVN Revision: 1864
2009-02-05 21:23:16 +00:00
Jean-Sébastien Pédron 8290026940 o Document the type of the argument(s) and the returned type of every
functions.
o  Add guardians expression to many functions of ejabberd_auth and
ejabberd_auth_anonymous to ensure at an early stage that we were given
the right arguments. Other modules are not changed because they are only
used by ejabberd_auth which already does the check.

PR:		EJABP-1

SVN Revision: 1863
2009-02-05 11:13:01 +00:00
Badlop 96c1307ebf * doc/Makefile: In Clean do not remove html. In new Distclean, remove also html.
SVN Revision: 1862
2009-02-03 10:58:16 +00:00
Badlop 2f45d7ecc1 * doc/Makefile: When cleaning, remove contributed_modules.tex
SVN Revision: 1861
2009-02-03 10:47:38 +00:00
Badlop e321a241b7 * src/Makefile.in: Fix arguments to Install program
SVN Revision: 1860
2009-02-03 10:25:06 +00:00
Badlop aab07df37b * src/web/ejabberd_web_admin.erl: Calls to the hook
webadmin_menu_node provide the node as first argument, and calls
to webadmin_menu_hostnode provide both the host and the node. Fix
call to make_menu_items, because webadmin_menu_node was called in
cases where webadmin_menu_hostnode should be called. Align to
right some table elements.

SVN Revision: 1859
2009-02-02 10:12:44 +00:00
Badlop dd49b98580 * doc/guide.tex: Provide only an example of language option
* doc/guide.html: Likewise

SVN Revision: 1858
2009-01-31 12:26:27 +00:00
Jean-Sébastien Pédron 4badd3b6ac Disable "TODO:" interpretation in eDoc because usually, the following
text isn't in eDoc format.

PR:		EJABP-1

SVN Revision: 1857
2009-01-30 15:50:13 +00:00
Evgeniy Khramtsov e790ceea60 * src/eldap/eldap.erl: moves waiting for response queries to
pending queue on an LDAP connection failure.

SVN Revision: 1856
2009-01-30 15:22:18 +00:00
Evgeniy Khramtsov 8530e628b4 * src/eldap/eldap.erl: implemented queue for pending queries.
SVN Revision: 1855
2009-01-27 13:24:18 +00:00
Badlop 8fa76b9015 * doc/guide.tex: mod_muc can run in several nodes of cluster
* doc/guide.html: Likewise

SVN Revision: 1854
2009-01-27 11:20:55 +00:00
Jean-Sébastien Pédron 69a2194efe exmpp_server_sasl:next_step/1 returns the mechanism as list() again, so
the call to binary_to_list/1 isn't necessary anymore.

PR:		EJABP-1

SVN Revision: 1853
2009-01-23 14:06:48 +00:00
Jean-Sébastien Pédron b5c8b99272 Document every functions to clarify the types to give and returned.
PR:		EJABP-1

SVN Revision: 1852
2009-01-23 10:10:33 +00:00
Evgeniy Khramtsov e2fa195e20 * src/eldap/eldap.erl: Close a connection on tcp_error.
SVN Revision: 1851
2009-01-23 07:28:49 +00:00
Badlop 35926b96b4 * src/odbc/mysql.sql: Fix complain about comment syntax
* src/odbc/pg.sql: Likewise

SVN Revision: 1850
2009-01-23 00:10:00 +00:00
Badlop ee1140483c * src/odbc/mysql.sql: Fix complain about comment syntax
* src/odbc/pg.sql: Likewise

SVN Revision: 1850
2009-01-23 00:10:00 +00:00
Pablo Polvorin d1cf37bbec Small fixes
SVN Revision: 1849
2009-01-22 22:19:03 +00:00
Jean-Sébastien Pédron 4c61d254cc Add edoc-info & erlang.png to svn:ignore.
PR:		EJABP-1

SVN Revision: 1848
2009-01-22 15:56:37 +00:00
Jean-Sébastien Pédron 9c68810c77 Ignore files generated by eDoc.
PR:		EJABP-1

SVN Revision: 1847
2009-01-22 15:55:48 +00:00
Jean-Sébastien Pédron 4417608b27 Document every functions to clarify the types to give and returned.
PR:		EJABP-1

SVN Revision: 1846
2009-01-22 15:54:03 +00:00
Jean-Sébastien Pédron a105dcb060 In get_vh_session_list/1, remove a bad list_to_binary/1; now that
exmpp_stringprep return the correct type, it was used on a binary().

PR:		EJABP-1

SVN Revision: 1845
2009-01-22 15:52:30 +00:00
Jean-Sébastien Pédron 0cf0992f78 Fix some eDoc @spec directives.
PR:		EJABP-1

SVN Revision: 1844
2009-01-22 15:50:43 +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 b9caf7e610 * src/ejabberd_hooks.erl: Explanation in EDoc of some functions
SVN Revision: 1842
2009-01-21 17:36:28 +00:00
Jean-Sébastien Pédron 842ebfcca0 A lot of bug fixes regarding attribute values type:
o  Fix some bugs by getting attributes as list() instead of binary().
o  Instead creating #xmlattr directly, use the new ?XMLATTR macro; it'll
take care of the anything-to-binary() conversion.
o  Fix a bug where recipient and sender were used as binary() instead of
list(), which is required by the rest of the S2S code.
o  Fix a bug where binary_to_list/1 was called on a list().

Now concerning JIDs :
o  Now that #jid{} isn't part of the API of Exmppp anymore, replace
remaining direct usages by calls to exmpp_jid.
o  Replace exmpp_jid:make_bare_jid() by exmpp_jid:make_jid().
o  Replace exmpp_jid:*_to_jid/1 by exmpp_jid:parse_jid/1.

PR:		EJABP-1

SVN Revision: 1841
2009-01-21 13:34:26 +00:00
Jean-Sébastien Pédron 376ee2ed90 o In process_iq_get/3 and process_iq_set/3, use binary() version of
LUser and LServer.
o  In convert_to_exmpp2/2, user and server are stored as binary().

PR:		EJABP-1

SVN Revision: 1840
2009-01-21 13:31:14 +00:00
Jean-Sébastien Pédron 2f1397c50e Use string() version of UserName and UserHost.
PR:		EJABP-1

SVN Revision: 1839
2009-01-21 13:30:18 +00:00
Jean-Sébastien Pédron cdbb000638 Return invalid-mechanism when a mechanism isn't supported instead of
no-mechanism, which wasn't standard-compliant.

PR:		EJABP-1

SVN Revision: 1838
2009-01-21 13:07:55 +00:00
Jean-Sébastien Pédron 8a413018c2 In match_acl/3, use string() version of User/Server/Resource to match an
ACL.

PR:		EJABP-1

SVN Revision: 1837
2009-01-21 12:44:36 +00:00
Badlop d6fa5c2903 * doc/guide.tex: Explain that account creation is only supported
by internal and odbc authentication methods
* doc/guide.html: Likewise

SVN Revision: 1836
2009-01-20 22:38:29 +00:00
Badlop 3e2048ace9 * src/Makefile.in: The path to the installed copy of ejabberd
Guide is set in the environment variable
EJABBERD_DOC_PATH (EJAB-837).
* src/web/ejabberd_web_admin.erl: Likewise
* src/ejabberdctl.template: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1835
2009-01-20 19:42:08 +00:00
Badlop 2e511c78af * src/mod_privacy.erl: Only run roster_get_jid_info if privacy
list has subscription or group (thanks to George Hazan)(EJAB-851).
Sort items in privacy list by order before storing (EJAB-848)
* src/mod_privacy.hrl: Likewise
* src/mod_privacy_odbc.erl: Likewise

SVN Revision: 1834
2009-01-20 17:34:58 +00:00
Pablo Polvorin 03f2de75f5 Typo (prolists -> proplists).
SVN Revision: 1833
2009-01-19 17:45:11 +00:00
Jean-Sébastien Pédron 38c0f3cdc8 Replace remaining calls to deprecated API:
o  In src/cyrsasl_digest.erl, replace hijacked usage of
xml:get_attr_s/2 by proper calls to proplists:get_value/3.
o  Still in src/cyrsasl_digest.erl, replace a call to
stringprep:tolower/1 by exmpp_stringprep:to_lower/1.
o  In src/ejabberd_service.erl, replace a call to xml:crypt/1 by
exmpp_xml:escape_using_entities/1.

PR:		EJABP-1

SVN Revision: 1832
2009-01-19 15:58:16 +00:00
Jean-Sébastien Pédron 978effade4 Remove empty svn:mergeinfo properties so it won't get in the way during
future merges.

The server and the repository are Subversion 1.4.x: they are unable to
understand this property.

Subversion 1.5.x clients usually won't commit it on purpose when the
server and/or the repository are 1.4.x. But they will copy it when doing
WC-to-WC copy because they do not communicate with the server at this
time.

SVN Revision: 1831
2009-01-19 15:42:25 +00:00
Jean-Sébastien Pédron 4d95ac08dd Remove empty svn:mergeinfo properties so it won't get in the way during
future merges.

The server and the repository are Subversion 1.4.x: they are unable to
understand this property.

Subversion 1.5.x clients usually won't commit it on purpose when the
server and/or the repository are 1.4.x. But they will copy it when doing
WC-to-WC copy because they do not communicate with the server at this
time.

SVN Revision: 1831
2009-01-19 15:42:25 +00:00
Jean-Sébastien Pédron fc77b48344 Merge from trunk (r1804 to r1829).
The merge party is over, you may now double-check that everything is in
place.

PR:		EJABP-1

SVN Revision: 1830
2009-01-19 15:27:07 +00:00
Jean-Sébastien Pédron ff500d8297 Merge from trunk (r1787 to r1804).
Included are fixes to src/mod_configure.erl and src/mod_caps.erl.

Note: this merge doesn't include the following revisions because it was
made by previous commits:
r1766, r1768, r1781, r1783, r1794, r1797, r1799, r1802.

Warning: Ejabberd may be broken until the merge is completly finished.

PR:		EJABP-1

SVN Revision: 1829
2009-01-19 14:47:33 +00:00
Pablo Polvorin e2ee44617c translate.erl: Bugfix, ?MYLANG macro returns a list().
SVN Revision: 1828
2009-01-19 13:44:43 +00:00
Jean-Sébastien Pédron 25009ff9f4 Merge from trunk (r1764 to r1787).
Warning: Ejabberd may be broken until the merge is completly finished.

PR:		EJABP-1

SVN Revision: 1827
2009-01-19 11:59:40 +00:00
Jean-Sébastien Pédron bc51bd0dbd Merge from trunk (r1752 to r1764).
Warning: Ejabberd may be broken until the merge is completly finished.

PR:		EJABP-1

SVN Revision: 1826
2009-01-19 11:16:44 +00:00
Jean-Sébastien Pédron 8a27b5446d Fix accesses to the new #jid opaque type.
PR:		EJABP-1

SVN Revision: 1825
2009-01-19 10:14:55 +00:00
Jean-Sébastien Pédron 2cc2039ad8 Merge from trunk (r1734 to r1752).
Note: this merge doesn't include the following revisions because it was
made by previous commits:
r1737, r1740, r1745, r1747, r1748.

Additionnaly, any deprecated content was removed from jlib.hrl. This
leaves only the new RSM records.

Warning: Ejabberd may be broken until the merge is completly finished.

PR:		EJABP-1

SVN Revision: 1824
2009-01-19 10:14:04 +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 43e12a3702 * src/mod_privacy.erl: Privacy list items must be processed in the
specified order (EJAB-848)
* src/mod_privacy_odbc.erl: Likewise

SVN Revision: 1822
2009-01-16 16:06:21 +00:00
Pablo Polvorin 04f6a2be37 Store host and room name as binary(). Use jid_to_binary() instead of jid_to_list().
SVN Revision: 1821
2009-01-15 19:41:06 +00:00
Pablo Polvorin 2538001b08 Store registered nicknames, rooms and domains as binary().
Use document_to_iolist/1 and iolist_size/1 instead of document_to_list/1.

SVN Revision: 1820
2009-01-15 15:21:54 +00:00
Badlop 47ff640292 * doc/release_notes_2.0.3.txt: Minor changes
SVN Revision: 1818
2009-01-13 18:05:06 +00:00
Mickaël Rémond d041c1127d * src/tls/Makefile.win32: Windows compilation support.
* src/tls/tls_drv.c: Likewise.
* src/tls/stdint.h: Likewise.

SVN Revision: 1816
2009-01-13 16:33:17 +00:00
Mickaël Rémond 1c7b41f02e * doc/guide.tex: Update Erlang version in Windows compilation documentation.
SVN Revision: 1815
2009-01-13 14:50:31 +00:00
Badlop 52930b77d8 * src/msgs/pl.po: Fix typo (thanks to Apag0r)(EJAB-844)
SVN Revision: 1814
2009-01-12 23:47:07 +00:00
Badlop 43a98ab69b * src/web/ejabberd_web_admin.erl: Use textareas for large input
like ejabberd module options and listening port options. Show
result of POST more clearly. Ensure access rules are shown with
some minimum separation. Improve menu headers. (EJAB-562)
* src/web/ejabberd_web_admin.hrl: Likewise
* src/mod_offline.erl: Likewise
* src/mod_offline_odbc.erl: Likewise
* src/mod_roster.erl: Likewise
* src/mod_roster_odbc.erl: Likewise
* src/mod_shared_roster.erl: Likewise

SVN Revision: 1813
2009-01-12 21:48:34 +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 55db20d4b7 * src/web/ejabberd_web_admin.erl: New appearance of WebAdmin logo,
fixed logo-fill.

SVN Revision: 1811
2009-01-12 19:24:25 +00:00
Badlop b3328c08a6 * doc/guide.tex: Fix some English strings: JID -> Jabber ID;
jabberd 1.4 -> jabberd14; commited -> committed
* src/*/*.erl: Likewise
* src/msgs/*.msg: Likewise
* src/msgs/*.po: Likewise

SVN Revision: 1810
2009-01-12 18:41:46 +00:00
Pablo Polvorin e8f630b93a mod_pubsub: initial update to new hooks API (using binaries). mod_pubsub is still unusable with exmpp.
SVN Revision: 1809
2009-01-12 18:17:05 +00:00
Alexey Shchepin 562e6c8d39 * src/odbc/ejabberd_odbc.erl: Fixed processing of UPDATE results
with pgsql

SVN Revision: 1808
2009-01-12 18:15:49 +00:00
Pablo Polvorin 49210e3099 Apply commit 1212 (caps handling fix), was incorrectly overwritten on 1770.
SVN Revision: 1807
2009-01-12 18:15:44 +00:00
Pablo Polvorin 96c0ff44f9 Fix typo
SVN Revision: 1806
2009-01-12 15:51:22 +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
Christophe Romain 56bccce713 fix previous fix misplacing (EJAB-840)
SVN Revision: 1803
2009-01-11 06:24:42 +00:00
Christophe Romain 1ac9246a49 prevent unauthorized entity to gain none-affiliation for given entity
SVN Revision: 1802
2009-01-11 04:08:10 +00:00
Christophe Romain 89be1c2ede fix owners cache and fix unsubscribe permissions (EJAB-840)
SVN Revision: 1800
2009-01-11 02:05:41 +00:00
Christophe Romain 8090011126 fix previous partial patch (EJAB-840)
SVN Revision: 1799
2009-01-11 01:45:24 +00:00
Christophe Romain c170783a49 fix owners cache and fix unsubscribe permissions (EJAB-840)
SVN Revision: 1797
2009-01-11 01:41:06 +00:00
Pablo Polvorin c77f7e727b Update gen_iq_handler API, require the 'Host' argument to be in binary() format.
Fix bug in vcard user search, odbc backend.

SVN Revision: 1796
2009-01-10 16:10:12 +00:00
Christophe Romain 36080fb682 fix unsubscription of full jid subscribed node (EJAB-839)
SVN Revision: 1795
2009-01-10 13:40:38 +00:00
Christophe Romain 38dcae1fc8 fix unsubscription of full jid subscribed node (EJAB-839)
SVN Revision: 1794
2009-01-10 13:38:10 +00:00
Badlop 91897882d2 * doc/guide.tex: Improve explanation of backup commands (EJAB-832)
* doc/guide.html: Likewise

SVN Revision: 1792
2009-01-09 22:59:37 +00:00
Pablo Polvorin 98f51dc91f Adapt to new exmpp API where get_id/1, get_lang/1, get_initiating_entity/1, get_receiving_entity/1 and get_type/1 returns binary().
SVN Revision: 1791
2009-01-09 19:18:46 +00:00
Badlop eaa1644ebd * src/mod_configure.erl: Fix access check for vhost configuration
SVN Revision: 1787
2009-01-09 00:39:57 +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
Christophe Romain a1f0ad3300 apply delete-any feature
SVN Revision: 1783
2009-01-08 18:45:59 +00:00
Christophe Romain d2524b20d5 minor pubsub fixes
SVN Revision: 1782
2009-01-08 18:44:11 +00:00
Christophe Romain 068c93e562 fix EJAB-701 and EJAB-836
SVN Revision: 1781
2009-01-08 17:27:47 +00:00
Pablo Polvorin e0e58711bb XML attributes as binary(). Change Node argument to binary in the following hooks:
disco_local_items, disco_local_features, disco_local_identity, disco_sm_items and 
disco_sm_identity.

SVN Revision: 1780
2009-01-08 14:54:00 +00:00
Christophe Romain 967bbe7f03 fix EJAB-701 and EJAB-836
SVN Revision: 1779
2009-01-08 14:06:35 +00:00
Badlop 14bc7cf77f * src/mod_roster.erl: Show hyperlinks to local contacts when
browsing roster of account in Web Admin (EJAB-480)
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 1778
2009-01-07 01:38:45 +00:00
Badlop 9f80ec4fb6 * src/web/ejabberd_web_admin.erl: WebAdmin serves Guide and links
to related sections; the path to guide.html can be configured with
option doc_path (EJAB-837)
* src/web/ejabberd_web_admin.hrl: Likewise
* src/mod_shared_roster.erl: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1777
2009-01-07 00:55:02 +00:00
Badlop a0d48c63a3 * src/msgs/ru.po: Fix typo (thanks to Dominges)
* src/msgs/ru.msg: Likewise

SVN Revision: 1776
2009-01-06 15:09:53 +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
Pablo Polvorin 2cbd61f268 Fix typo in mod_roster
SVN Revision: 1773
2009-01-05 15:41:53 +00:00
Badlop 91a7110941 * src/*.erl: Fix EDoc comments
SVN Revision: 1771
2009-01-03 21:29:54 +00:00
Pablo Polvorin 4827db4f56 Big #jid to binary() conversion.
Internal tables (ejabberd_router, ejabberd_sm, ejabberd_hooks, mod_last, mod_roster) use binary() as storage.
Basic test using the ODBC backend.

SVN Revision: 1770
2009-01-03 15:15:38 +00:00
Christophe Romain 1a44fe29b4 PubSub: Added access-whitelist and member-affiliation features (EJAB-780)
SVN Revision: 1769
2009-01-03 00:58:18 +00:00
Christophe Romain 01d761a901 PubSub: Added access-whitelist and member-affiliation features (EJAB-780)
SVN Revision: 1768
2009-01-03 00:55:05 +00:00
Christophe Romain e032a8c54f PubSub cleanup, EJAB-827 fix, EJAB-701 partial fix
SVN Revision: 1767
2009-01-03 00:29:36 +00:00
Christophe Romain e710a24860 PubSub cleanup, EJAB-827 fix, EJAB-701 partial fix
SVN Revision: 1766
2009-01-03 00:25:40 +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
Evgeniy Khramtsov 5a5ab955cb * src/odbc/odbc_queries.erl: replaced string:join/2 function.
Removed ugly "catch" statement from update_t/4.
WARNING: this change requires last version of mysql driver.
You can update it from ejabberd-modules repository.

SVN Revision: 1762
2008-12-29 09:26:20 +00:00
Evgeniy Khramtsov 85fdf7cb25 * src/odbc/ejabberd_odbc.erl: Print meaningful error message when
an SQL transaction exceeds number of restarts. Also rollbacks
this transaction to prevent deadlocks.

SVN Revision: 1761
2008-12-29 04:21:27 +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
Badlop 1944aa097f Use inet:gethostbyname instead of inet_res:getbyname
SVN Revision: 1758
2008-12-26 18:36:53 +00:00
Badlop 394245620e * src/web/ejabberd_web_admin.erl: Show in ejabberd Web Admin the
connection method and connected node of Jabber clients (thanks to
Oleg Palij)(EJAB-319)

SVN Revision: 1757
2008-12-26 12:44:54 +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
Evgeniy Khramtsov 11825e7a33 * src/odbc/ejabberd_odbc.erl: get rid of SERIALIZABLE isolation level on MySQL connections.
* src/odbc/odbc_queries.erl: replaces all delete->insert chains with update->insert.
* src/mod_privacy_odbc.erl: moved sql queries to odbc_queries.erl.
* src/mod_roster_odbc.erl: changed interface for odbc_queries.erl.

SVN Revision: 1755
2008-12-26 09:38:54 +00:00
Badlop 594bc36ce5 * src/aclocal.m4: Fixes in configure script: fix
disable-disable_zlib and disable-pam; in case of problems, PAM
verification aborts with error instead of warning. (EJAB-787)
* src/configure.ac: Likewise
* src/configure: Likewise

SVN Revision: 1754
2008-12-24 12:03:13 +00:00
Badlop 7808dc11af * src/acl.erl: New ACL: shared_group (thanks to Maxim Ryazanov)
* doc/guide.tex: Likewise

* src/mod_shared_roster.erl: Push new group members when
registered or manually added to group: EJAB-730 EJAB-731 EJAB-732
EJAB-767 EJAB-794. When user is added to group, push it to other
members, and other members to it. When user is removed from group,
push deletion to other members, and other members to it. When user
is registered, push him to members of group @all@. When user is
deleted, push deletion to members of group @all@. Document several
functions in mod_shared_roster.

* src/ejabberd_auth.erl: Rename hook user_registered to
register_user, for name consistency with the widely used hook
remove_user. Run hook register_user in ejabberd_auth, so it's run
when account is created with any method. Run hook remove_user in
ejabberd_auth, so it's run when account is deleted with any
method.
* 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/mod_register.erl: Likewise

SVN Revision: 1752
2008-12-23 19:15:33 +00:00
Christophe Romain 214ef31053 Improve handling of PEP sent to external contacts (EJAB-825)
SVN Revision: 1751
2008-12-23 13:58:38 +00:00
Badlop 35b1e2885e * src/jlib.erl: Implementation of XEP-0059 Result Set
Management (thanks to Eric Cestari)(EJAB-807)
* src/jlib.hrl: Likewise
* src/mod_muc/mod_muc.erl: Likewise

SVN Revision: 1750
2008-12-23 13:04:42 +00:00
Christophe Romain 17cbd1614a typo fix
SVN Revision: 1748
2008-12-23 10:53:06 +00:00
Christophe Romain 4d20367a0c make caps store only required user_caps_default
SVN Revision: 1747
2008-12-23 10:51:44 +00:00
Christophe Romain 5adfcfad7a Improve handling of PEP sent to external contacts (EJAB-825)
SVN Revision: 1745
2008-12-23 10:20:34 +00:00
Badlop 42036d8f68 * src/mod_last.erl: Implement workaround for uptime statistic in
32 bit machines, so it can show uptime greater than 50
days (EJAB-610)
* src/mod_last_odbc.erl: Likewise
* src/ejabberd_config.erl: Store start time in local_config table

SVN Revision: 1744
2008-12-23 01:34:52 +00:00
Badlop af2fa5b5f5 * src/cyrsasl_digest.erl: Check digest-uri in SASL digest
authentication (thanks to Paul Guyot)(EJAB-569)

SVN Revision: 1743
2008-12-23 01:02:44 +00:00
Badlop 74f15f790a * src/odbc/odbc_queries.erl: Fix removal of private_storage of an
account when the account is removed

* src/mod_privacy.erl: Remove privacy lists of an account when the
account is removed (EJAB-720)
* src/mod_privacy_odbc.erl: Likewise

SVN Revision: 1742
2008-12-23 00:48:09 +00:00
Christophe Romain 978adbbd94 Fix send_last_published_item issue when running on clustered table (EJAB-793)
SVN Revision: 1741
2008-12-20 00:01:26 +00:00
Christophe Romain 4469880c2e Fix send_last_published_item issue when running on clustered table (EJAB-793)
SVN Revision: 1740
2008-12-20 00:00:24 +00:00
Christophe Romain e6535dcc67 Check option of the nodetree instead of checking configuration
SVN Revision: 1738
2008-12-18 13:46:30 +00:00
Christophe Romain c0fb556a01 Check option of the nodetree instead of checking configuration
SVN Revision: 1737
2008-12-18 13:45:46 +00:00
Pablo Polvorin d3ddf10839 mod_muc_room.erl: Fix bug in MUC invite.
SVN Revision: 1736
2008-12-17 16:24:15 +00:00
Jean-Sébastien Pédron 69805f36fa Merge from trunk (r1730 to r1734).
PR:		EJABP-1

SVN Revision: 1735
2008-12-17 13:52:44 +00:00
Badlop 8f43867091 * src/mod_pubsub/mod_pubsub.erl: Fix update pubsub tables from
ejabberd 1.x to 2.x (EJAB-817)

SVN Revision: 1734
2008-12-16 17:44:48 +00:00
Badlop 867ce5be32 * doc/guide.tex: Fix capitalization of some section titles
* doc/guide.tex: Mention as optional Requirements: mysql, pgsql
and pam

* src/ejabberd_admin.erl: Command reopen-log must also rotate
sasl.log (thanks to Alexander Tsvyashchenko)(EJAB-711)
* src/ejabberd_logger_h.erl: Export the function rotate_log/1
* doc/guide.tex: Improve explanation of log files rotation

* doc/guide.tex: Improve explanation of watchdog admins
option: only useful for developers (EJAB-816)
* src/ejabberd.cfg.example: Likewise

* doc/guide.tex: Say 'higher' instead of 'newer' in requirements
* README: Likewise

* doc/guide.tex: Simplify example mod_muc configuration

SVN Revision: 1732
2008-12-16 17:36:34 +00:00
Jean-Sébastien Pédron 6a3436b1c4 Merge from trunk (r1709 to r1730).
Ejabberd should be usable again.

PR:		EJABP-1

SVN Revision: 1731
2008-12-16 13:16:56 +00:00
Jean-Sébastien Pédron 62f9f6e6c5 Convert to exmpp the parts in mod_pubsub recently merged from trunk.
Warning: Ejabberd is unusable because the rest of trunk hasn't been
merged yet!

PR:		EJABP-1

SVN Revision: 1730
2008-12-16 10:31:08 +00:00
Christophe Romain 96aaba738b fix get_item_name deadlock on transaction
SVN Revision: 1729
2008-12-15 19:58:53 +00:00
Christophe Romain a800ac5a4e fix get_item_name deadlock on transaction
SVN Revision: 1728
2008-12-15 19:55:35 +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
Jean-Sébastien Pédron f83fc51960 Replace stringprep by exmpp_stringprep.
PR:		EJABP-1

SVN Revision: 1726
2008-12-10 14:44:08 +00:00
Christophe Romain e1575e3177 fix typo bug injected in r1712
SVN Revision: 1725
2008-12-09 22:42:34 +00:00
Christophe Romain 6e5a32308a fix typo bug injected in r1712
SVN Revision: 1724
2008-12-09 22:42:01 +00:00
Christophe Romain 3d28a7837d minor bugfix
SVN Revision: 1723
2008-12-09 22:09:30 +00:00
Christophe Romain e8635b99c8 prevent publish items with invalid XML schema (EJAB-699)
SVN Revision: 1722
2008-12-09 22:02:47 +00:00
Christophe Romain 44b4c29d08 lattest pubsub merge added in Changelog
SVN Revision: 1721
2008-12-09 00:35:27 +00:00
Christophe Romain 9f2fda6060 merge to lattest trunk r1716
SVN Revision: 1720
2008-12-09 00:32:36 +00:00
Christophe Romain 07e9ad307e cosmetic change (intentation and spaces)
SVN Revision: 1719
2008-12-08 23:28:50 +00:00
Christophe Romain 23ce0b312d remove pubsub_state record when unsubscribing node without affiliation (EJAB-776)
SVN Revision: 1717
2008-12-08 21:47:50 +00:00
Christophe Romain dceb817853 reply to suscriptions options queries with unsupported feature error (EJAB-713)
SVN Revision: 1716
2008-12-08 21:17:46 +00:00
Christophe Romain c443ee4f4a several pubsub improvements
SVN Revision: 1715
2008-12-08 19:50:50 +00:00
Christophe Romain e2d8154a80 Reduce memory consumption due to caps handling
SVN Revision: 1712
2008-12-08 14:10:55 +00:00
Jean-Sébastien Pédron 3bfb2b5cc1 Merge from trunk (r1692 to r1709).
PR:		EJABP-1

SVN Revision: 1710
2008-12-08 12:02:27 +00:00
Jean-Sébastien Pédron 82b97b9639 Finish the conversion of mod_pubsub to Exmpp.
PR:		EJABP-1

SVN Revision: 1709
2008-12-08 11:21:32 +00:00
Jean-Sébastien Pédron d01c24bd23 Fix acl:match_rule/3 call. It takes a #jid record, not a short JID.
PR:		EJABP-1

SVN Revision: 1708
2008-12-08 11:20:21 +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
Jean-Sébastien Pédron 163d185776 First pass of Exmpp conversion for mod_pubsub.
CAUTION:
o  Several modules aren't converted yet.
o  Existent Mnesia tables written to disc are not updated.
o  There must be bugs, mostly because of the mix between #jid record
and short JIDs.
PR:		EJABP-1

SVN Revision: 1705
2008-12-05 15:13:09 +00:00
Jean-Sébastien Pédron 6305ddca18 Add the module and function names to the error message, when a module
crash.

SVN Revision: 1704
2008-12-05 15:08:03 +00:00
Jean-Sébastien Pédron b82b66fdf0 Update Exmpp XML parser options.
SVN Revision: 1703
2008-12-05 15:06:49 +00:00
Badlop 8e32cc11cb Fix default value of default_room_options (thanks to Aleksey Shchepin)
SVN Revision: 1702
2008-12-03 15:06:21 +00:00
Jean-Sébastien Pédron b425093813 Convert mod_proxy65 to exmpp.
SVN Revision: 1701
2008-12-03 14:34:43 +00:00
Jérôme Sautret 9e679aa621 * src/odbc/ejabberd_odbc.erl: close MySQL connections on terminate (needs mysql r829)
SVN Revision: 1700
2008-12-03 10:58:19 +00:00
Badlop bc9ba75c2b No need to define default value of history field because it is explicitely set when the record is created
SVN Revision: 1699
2008-12-02 19:45:39 +00:00
Badlop f124bb3d10 * src/mod_muc/mod_muc_room.erl: Move definitions to header file
* src/mod_muc/mod_muc_room.hrl: New header file
* src/Makefile.in: Likewise

SVN Revision: 1698
2008-12-02 19:23:12 +00:00
Badlop 60ae1b47c5 * doc/guide.tex: New subsection Database Connection
* doc/guide.html: Likewise

SVN Revision: 1697
2008-12-01 17:45:01 +00:00
Jean-Sébastien Pédron f30d2b9f1c Fix two warnings about unused variables.
PR:		EJABP-1

SVN Revision: 1696
2008-12-01 15:54:57 +00:00
Jean-Sébastien Pédron 9e96043255 Merge from trunk (r1649 to r1692).
PR:		EJABP-1

SVN Revision: 1695
2008-12-01 15:53:30 +00:00
Jean-Sébastien Pédron bd300e870c Convert mod_muc to Exmpp.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1692
2008-12-01 15:01:27 +00:00
Jean-Sébastien Pédron e06f533f6b Start the exmpp application.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1691
2008-12-01 15:00:36 +00:00
Jean-Sébastien Pédron 7088ba88a9 o In store_last_info/4, fix a bug where the status was not converted to
list before calling ejabberd_odbc:escape/1.
o  In get_last_info/2, fix a bug where the status was returned as a list
instead of a binary.

SVN Revision: 1690
2008-12-01 12:16:41 +00:00
Badlop 7348f4a553 Remove debug line from SVN r1685
SVN Revision: 1689
2008-11-28 19:51:30 +00:00
Alexey Shchepin 964cb84864 * src/mod_muc/mod_muc_room.erl: Clean user activity after timeout
(EJAB-804)

SVN Revision: 1688
2008-11-28 16:06:39 +00:00
Badlop 78b90e9300 * src/ejabberdctl.template: Fix detection of ejabberdctl.cfg path
SVN Revision: 1687
2008-11-26 18:02:41 +00:00
Badlop 340562e452 * src/mod_irc/mod_irc.erl: Announce disco#info (thanks to Spike)
* src/mod_muc/mod_muc.erl: Announce disco#info disco#items
* src/mod_proxy65/mod_proxy65_service.erl: No announce disco#items
* src/mod_pubsub/mod_pubsub.erl: Announce disco#info disco#items
* src/mod_vcard.erl: Announce disco#info

SVN Revision: 1686
2008-11-26 16:04:27 +00:00
Badlop 6a785fa536 * src/gen_mod.erl: First store module options in ETS and Mnesia,
then start the module. In case of failure, remove options from
ETS. Until now the module was started before the options were
stored in database, and some modules started incorrectly because
they couldn't access the options from database; for instance
mod_muc_room required this for reading max_users option.

* src/mod_muc/mod_muc_room.erl: Include the value of max_users
service option and the current max_users room option in the list
of allowed room limit values.

SVN Revision: 1685
2008-11-26 15:10:38 +00:00
Christophe Romain e68a731219 pubsub/pep: get_node_affiliations resultset bugfix
SVN Revision: 1684
2008-11-25 23:05:26 +00:00
Evgeniy Khramtsov 11e5617efc * src/eldap/Makefile.in: added +optimize and +driver
compilation options
* src/eldap/Makefile.win32: Likewise

SVN Revision: 1682
2008-11-24 13:27:04 +00:00
Mickaël Rémond cc858469ec * src/ejabberdctl.template: Added the ability to define the --config-dir option.
SVN Revision: 1681
2008-11-23 16:41:50 +00:00
Alexey Shchepin c2d81c59b6 * src/ejabberd_receiver.erl: Hibernate after timeout
* src/ejabberd_frontend_socket.erl: Likewise

SVN Revision: 1680
2008-11-23 09:43:52 +00:00
Badlop 91b328b7d5 URL path should be tokenized by / and then decoded (EJAB-786).
SVN Revision: 1679
2008-11-12 10:03:27 +00:00
Badlop 9f110a6352 * src/web/ejabberd_http.erl: Include recognized headers in
request_headers as atoms, and others as strings (EJAB-778)

SVN Revision: 1678
2008-11-12 09:58:28 +00:00
Badlop add568169e * doc/guide.tex: Improve legibility of mod_irc example config
SVN Revision: 1677
2008-11-12 00:21:47 +00:00
Alexey Shchepin d5d89c2ab3 SVN Revision: 1676 2008-11-10 14:40:53 +00:00
Alexey Shchepin 4709ed58aa * src/tls/tls_drv.c: Don't create a SSL context on every
connection and disable SSLv2 on outgoing connections (EJAB-781)

SVN Revision: 1675
2008-11-10 14:32:51 +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 02d68146bd * src/extauth.erl: When the extauth call fails or timeouts, deny
authorization. Use two timeouts: 60s for script initialization and
10s for regular calls. (thanks to Kevin Crosbie from
Ravenpack) (EJAB-627)

SVN Revision: 1673
2008-11-06 15:36:49 +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 f032cf3380 * src/Makefile.in (clean-local): Delete also ejabberdctl.example
SVN Revision: 1671
2008-10-27 12:19:06 +00:00
Badlop ff6891cdd0 * src/translate.erl: When a translation file can't be loaded, show
detailed error message

SVN Revision: 1669
2008-10-24 22:16:17 +00:00
Badlop 9d521c9dd0 * src/ejabberd_ctl.erl: If ejabberd didn't start correctly:
'ejabberdctl status' suggests to look in log files; any other
ejabberdctl command shows 'status'.

SVN Revision: 1668
2008-10-24 22:11:42 +00:00
Badlop 9e55a1291a * src/ejabberd_app.erl: Open ejabberd.log sooner, so errors during
ejabberd initialization are logged in that file (EJAB-777). Write
a log message when ejabberd finishes the start or stop.

SVN Revision: 1667
2008-10-24 22:07:38 +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
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
Alexey Shchepin 7181957506 * src/ejabberd_frontend_socket.erl: Fixed SSL sockets
SVN Revision: 1664
2008-10-23 14:59:49 +00:00
Jean-Sébastien Pédron 0313adaec6 Convert to exmpp.
PR:		EJABP-1

SVN Revision: 1663
2008-10-20 10:34:00 +00:00
Badlop 5264d9299d * src/Makefile.in: docdir should be prefixed with DESTDIR (thanks
to Jack Moffitt)(EJAB-775)

SVN Revision: 1662
2008-10-17 17:37:50 +00:00
Christophe Romain f6e2a58772 does not write item when max_items set to 0 (solves EJAB-768)
SVN Revision: 1661
2008-10-17 00:43:58 +00:00
Christophe Romain 0083e56c22 fix remove_user not unsubscribing user (EJAB-684)
SVN Revision: 1659
2008-10-16 23:09:51 +00:00
Christophe Romain a910c4baa1 fix badarg issue on get_roster_info when allowed roster groups is not defined
SVN Revision: 1656
2008-10-16 22:12:05 +00:00
Christophe Romain 9a71d6b87a fix pubsub_publish_item hook ServerHost parameter (EJAB-772)
SVN Revision: 1655
2008-10-14 12:41:46 +00:00
Jean-Sébastien Pédron 50b1e4c36f Convert to exmpp.
The admin web interface is working but HTTP polling seems broken in the
trunk.

PR:		EJABP-1

SVN Revision: 1654
2008-10-13 15:36:43 +00:00
Jérôme Sautret 7c736a5ea0 * src/odbc/ejabberd_odbc.erl: log MySQL driver messages.
SVN Revision: 1652
2008-10-13 15:25:30 +00:00
Jean-Sébastien Pédron a94caf218f Remove all deprecated functions from jlib.
This was accidentally committed with the merge.

PR:		EJABP-1

SVN Revision: 1651
2008-10-13 11:43:33 +00:00
Jean-Sébastien Pédron ab2b70f189 Merge from trunk (r1613 to 1649).
PR:		EJABP-1

SVN Revision: 1650
2008-10-13 10:11:19 +00:00
Jean-Sébastien Pédron 3190c0ed6c Convert to exmpp.
PR:		EJABP-1

SVN Revision: 1649
2008-10-13 09:39:58 +00:00
Jean-Sébastien Pédron 461a5eb315 Convert to exmpp.
PR:		EJABP-1

SVN Revision: 1648
2008-10-13 09:39:18 +00:00
Jean-Sébastien Pédron 01ef834b82 Remove the deprecated list of converted modules.
PR:		EJABP-1

SVN Revision: 1647
2008-10-13 09:38:34 +00:00
Jean-Sébastien Pédron 0211c8145d Replace jlib:nameprep/1 by exmpp_stringprep:nameprep/1.
PR:		EJABP-1

SVN Revision: 1646
2008-10-13 09:37:48 +00:00
Badlop 6bd76ebfda Replace mentions of mod_xmlrpc to ejabberd_xmlrpc
SVN Revision: 1645
2008-10-13 09:01:08 +00:00
Badlop fa18b35df5 * src/web/ejabberd_web_admin.erl: When requesting page of
nonexistent user, show 'Not Found' page (EJAB-771)

SVN Revision: 1644
2008-10-13 08:32:04 +00:00
Badlop 2af52abdba * src/web/ejabberd_web_admin.erl: Run new hook
webadmin_user_parse_query when POST in web admin user
page (thanks to Oleg Palij)(EJAB-747)
* src/mod_offline.erl: Add button "Remove All Offline Messages" in
a user page (thanks to Oleg Palij)(EJAB-747)
* src/mod_offline_odbc.erl: Likewise

SVN Revision: 1643
2008-10-12 14:16:05 +00:00
Badlop 42115a8cfb * src/web/ejabberd_web_admin.erl: Improve Web Admin navigation
menu for vhosts and nodes (EJAB-734)

SVN Revision: 1642
2008-10-12 13:58:05 +00:00
Badlop 9a66082998 * doc/guide.tex: Explain the new ejabberdctl command 'help'
* doc/guide.html: Likewise

SVN Revision: 1641
2008-10-12 13:32:36 +00:00
Badlop 04981b5e44 * src/mod_configure.erl: Update calls from ctl to
commands (EJAB-694)
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 1640
2008-10-12 12:05:31 +00:00
Badlop 3bfe585364 * src/ejabberd_sm.erl: Update from ctl to commands (EJAB-694)
* src/ejabberd_s2s.erl: Likewise

SVN Revision: 1639
2008-10-12 12:04:10 +00:00
Badlop d5c3006136 * src/ejabberd_auth.erl: Update from ctl to commands (EJAB-694)
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_ldap.erl: Likewise
* src/ejabberd_auth_odbc.erl: Likewise

SVN Revision: 1638
2008-10-12 12:01:56 +00:00
Badlop 416a939352 * src/ejabberdctl.template: Move help print to a separate
function (EJAB-694)

SVN Revision: 1637
2008-10-12 12:00:20 +00:00
Badlop f2bd87b7cf * src/ejabberd_ctl.erl: Add frontend support for
commands (EJAB-694). Categorization and sorting of commands in
ejabberd_ctl help (EJAB-313). Lines in command line help of length
80, and text formatting (EJAB-473)

SVN Revision: 1636
2008-10-12 11:58:30 +00:00
Badlop 25d1094468 * src/ejabberd_app.erl: Initialize ejabberd_commands and start
ejabbed_admin (EJAB-694)

SVN Revision: 1635
2008-10-12 11:56:07 +00:00
Badlop 10ab81f4b4 * src/ejabberd_admin.erl: Implement commands from old
ejabberd_ctl (EJAB-694)

SVN Revision: 1634
2008-10-12 11:55:06 +00:00
Badlop dda582db13 * src/ejabberd_commands.erl: New 'ejabberd commands': separate
command definition and calling interface (EJAB-694)
* src/ejabberd_commands.hrl: Likewise

SVN Revision: 1633
2008-10-12 11:53:25 +00:00
Badlop be2f6e0517 * src/mod_proxy65/mod_proxy65.erl: Update so the listener starts
correctly (EJAB-303)
* src/mod_proxy65/mod_proxy65_service.erl: Likewise

SVN Revision: 1632
2008-10-12 11:17:35 +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
Christophe Romain b2d21cb71c fix typo
SVN Revision: 1630
2008-10-10 20:27:18 +00:00
Christophe Romain 385a1d3f0f uncomment pubsub_publish_item hook call (EJAB-765)
SVN Revision: 1629
2008-10-10 20:22:18 +00:00
Jean-Sébastien Pédron 4a9892fa15 Replace jlib:nameprep/1 by exmpp_stringprep:nameprep/1 and change the
error handling.

PR:		EJABP-1

SVN Revision: 1628
2008-10-10 15:24:47 +00:00
Jean-Sébastien Pédron 71bfefa788 Convert to exmpp.
PR:		EJABP-1

SVN Revision: 1627
2008-10-10 15:23:58 +00:00
Jean-Sébastien Pédron 071c858055 Don't start stringprep_sup.
PR:		EJABP-1

SVN Revision: 1626
2008-10-10 14:58:35 +00:00
Jean-Sébastien Pédron 0244963935 Replace jlib:nameprep/1 by exmpp_stringprep:nameprep/1 and change the
error handling.

PR:		EJABP-1

SVN Revision: 1625
2008-10-10 14:57:44 +00:00
Jean-Sébastien Pédron 3adb238b31 Fix a bug where the wrong module was called (jlib instead of exmpp_jid).
PR:		EJABP-1

SVN Revision: 1624
2008-10-10 14:41:26 +00:00
Jean-Sébastien Pédron e3100110f0 Replace jlib:nameprep/1 by exmpp_stringprep:nameprep/1 and change the
error handling.

PR:		EJABP-1

SVN Revision: 1623
2008-10-10 14:40:04 +00:00
Jean-Sébastien Pédron 5224a796cc Replace jlib:iq_to_xml/1 by exmpp_iq:iq_to_xmlel/1.
PR:		EJABP-1

SVN Revision: 1622
2008-10-10 14:38:52 +00:00
Jean-Sébastien Pédron 285b3858dd Replace jlib:*prep/1 by exmpp_stringprep:*prep/1 and change the error
handling.

PR:		EJABP-1

SVN Revision: 1621
2008-10-10 14:37:26 +00:00
Jean-Sébastien Pédron 53bea055aa Remove a remaining jlib:jid_remove_resource/1 call.
PR:		EJABP-1

SVN Revision: 1620
2008-10-10 14:36:25 +00:00
Jean-Sébastien Pédron 129b0e99cf Replace jlib:nodeprep/1 by exmpp_stringprep:nodeprep/1 and change the
error handling.

PR:		EJABP-1

SVN Revision: 1619
2008-10-10 14:35:17 +00:00
Jean-Sébastien Pédron c0e4af9ac0 Replace jlib:nameprep/1 by exmpp_stringprep:nameprep/1 and change the
error handling.

PR:		EJABP-1

SVN Revision: 1618
2008-10-10 14:33:16 +00:00
Jean-Sébastien Pédron ccd94bb734 Fix a buf where a tuple was passed to exmpp_jid:jid_to_list/1 instead of
a #jid. Now we use exmpp_jid:jid_to_list/3.

PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1617
2008-10-10 08:16:29 +00:00
Jean-Sébastien Pédron e1b3bd611d Fix a bug where legacy authentication informations were not search among
the query children but among the IQ children.

PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1616
2008-10-10 08:14:08 +00:00
Jean-Sébastien Pédron 6ab7e339bd Fix handling of unauthenticated stanzas which are not request IQ.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1615
2008-10-09 11:54:42 +00:00
Jean-Sébastien Pédron 67a87af459 Merge from trunk (r1563 to r1613).
PR:		EJABP-1

SVN Revision: 1614
2008-10-08 12:02:30 +00:00
Jérôme Sautret b65caa82fb * src/mod_roster_odbc.erl: fix MySQL multiple requests issue.
SVN Revision: 1612
2008-10-07 12:32:12 +00:00
Jean-Sébastien Pédron aaecdc4b8a Convert to exmpp.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1611
2008-10-07 12:20:09 +00:00
Jean-Sébastien Pédron 78466384c4 Convert to exmpp.
PR:		EJABP-1

SVN Revision: 1610
2008-10-07 09:55:38 +00:00
Jean-Sébastien Pédron ca7a0813b4 Fix a bug where an error stanza was not created correctly, leading to
ejabberd_c2s crash.

PR:		EJABP-1

SVN Revision: 1609
2008-10-07 09:54:53 +00:00
Jean-Sébastien Pédron bc0d8613ab Fix status handling by always using binaries: until now, we were mixing
lists and binaries in a non-working way.

PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1608
2008-10-06 15:16:09 +00:00
Jean-Sébastien Pédron 0434c1424a The Mnesia table wasn't updated when converting from an old schema.
PR:		EJABP-1

SVN Revision: 1607
2008-10-06 15:14:01 +00:00
Jean-Sébastien Pédron 3f8a303286 Convert to exmpp.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1606
2008-10-06 15:01:36 +00:00
Badlop 10ab4e6782 * doc/guide.html: Regenerated
* doc/guide.tex: Fix a problem in SVN merge from trunk

SVN Revision: 1605
2008-10-06 15:01:06 +00:00
Jean-Sébastien Pédron 5ceffdd5a7 Fix a confusion between #jid and tuples.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1604
2008-10-06 15:00:34 +00:00
Jean-Sébastien Pédron 01da93bf70 mod_privacy & friends may return an empty list.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1603
2008-10-06 14:58:45 +00:00
Jean-Sébastien Pédron 028a3c2ded Fix a bug where we were matching on #iq.type instead of #iq.kind,
resulting in bad-request sent to the client.

PR:		EJABP-1

SVN Revision: 1602
2008-10-06 14:56:36 +00:00
Jérôme Sautret 2f8127d343 * src/ejabberd_rdbms.erl: fix SQL database reconnection
issues (EJAB-764) and add odbc_start_interval configuration
directive (default to 30 seconds).
* src/odbc/ejabberd_odbc.erl: likewise.
* src/odbc/ejabberd_odbc_sup.erl: likewise.
* doc/guide.tex: likewise.

SVN Revision: 1600
2008-10-06 14:18:46 +00:00
Jérôme Sautret a2340ea8b8 * src/odbc/odbc_queries.erl: Fix empty query that fail on MySQL.
SVN Revision: 1597
2008-10-03 15:42:40 +00:00
Jérôme Sautret 744b827169 * src/mod_vcard_odbc: added vCard support for MS SQL Server 2005 (missing from previous commit)
SVN Revision: 1596
2008-10-03 15:30:56 +00:00
Jérôme Sautret 8883e4ad8b * src/mod_vcard_odbc: added vCard support for MS SQL Server 2005.
* src/odbc/odbc_queries.erl: likewise.
* src/odbc/mssql2005.sql: likewise.

SVN Revision: 1595
2008-10-03 15:29:48 +00:00
Jean-Sébastien Pédron 1698b8ec04 o In start/2 and stop/1, the IQ registration must use a namespace as
atom, not list.
o  The functions process_local_iq/3, process_sm_iq/3 and get_last/3
receive an #iq, not an #xmlel.
o  In store_last_info/4 and remove_user/2, add try/catch block around
exmpp_stringprep:*prep/1 uses.

SVN Revision: 1594
2008-10-02 14:59:48 +00:00
Jean-Sébastien Pédron 9e018532c8 o In #jid, when the node isn't specified, it defaults to the atom
"undefined", not an empty binary.
o  Fix a bug where we expected an #xmlelement to have only one #xmlcdata
child.

SVN Revision: 1593
2008-10-02 13:52:39 +00:00
Jean-Sébastien Pédron 24cb7cb039 exmpp_xml:get_element_by_name/2 is deprecated; use
exmpp_xml:get_element/2 instead.

SVN Revision: 1592
2008-10-02 13:34:52 +00:00
Jean-Sébastien Pédron 7c28aba6a1 Fix a bug where a JID represented as a tuple was used in a function
expecting a #jid.

PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1591
2008-10-02 13:17:49 +00:00
Mickaël Rémond 3a2fb34a61 * src/mod_shared_roster.erl: Correct roster push when changing a shared roster entry name (EJAB-738).
SVN Revision: 1590
2008-10-01 14:52:25 +00:00
Jean-Sébastien Pédron 2309f9b8bc Fix multiple bugs in ODBC mods.
PR:		EJABP-1
Submitted by:	Pablo Polvorin <pablo.polvorin@process-one.net>

SVN Revision: 1589
2008-10-01 09:41:57 +00:00
Badlop 16a508cdb9 * src/*/Makefile.win32: Provide explicit beam filenames because
nmake does not accept wildcards (thanks to Attila
Vangel)(EJAB-543)

SVN Revision: 1588
2008-09-30 16:12:05 +00:00
Christophe Romain 43647c6d50 fix licence header
SVN Revision: 1587
2008-09-30 08:58:37 +00:00
Jean-Sébastien Pédron ddcb94649d Fill exmpp_xml known list with the nss/names/attrs used by this module.
SVN Revision: 1585
2008-09-29 13:19:11 +00:00
Jean-Sébastien Pédron 5f7e16eac3 Add the {autoload_known, true} flag to the XML parser options. This
allows modules to extend the known nss/names/attrs with their own data.

SVN Revision: 1584
2008-09-29 13:17:21 +00:00
Jean-Sébastien Pédron da034b3090 Fix a bug in #xmlel construction: children must be a list.
SVN Revision: 1583
2008-09-29 11:30:25 +00:00
Jean-Sébastien Pédron 12d515a8fe Convert to exmpp (not tested yet).
SVN Revision: 1582
2008-09-29 11:29:09 +00:00
Jean-Sébastien Pédron f5f3c85112 Remove compatibility code (not tested yet).
SVN Revision: 1581
2008-09-29 10:38:04 +00:00
Jean-Sébastien Pédron d8153b702a o Add try/catch block around exmpp_stringprep:*prep/1 uses.
o  Add table conversion.
o  In get_last/3, do not convert status to binary because it's already
one.

SVN Revision: 1580
2008-09-29 10:34:06 +00:00
Jean-Sébastien Pédron 9a4f5bb2d9 When the status is not specified in a presence stanza, default to an
empty binary, not an empty string; this is what mod_last expects.

SVN Revision: 1579
2008-09-29 10:31:24 +00:00
Jean-Sébastien Pédron 7624284070 Remove compatilibity code.
SVN Revision: 1578
2008-09-29 09:42:46 +00:00
Jean-Sébastien Pédron c32cbd90e8 Fix a bug in parse_xdata_submit/1 and parse_xdata_fields/2 where
exmpp_xml:get_attribute_from_list/3 was called with only 2 arguments;
this code has not been updated when exmpp_xml's API changed...

SVN Revision: 1577
2008-09-29 09:42:05 +00:00
Christophe Romain 70dd325aef EJAB-739 and EJAB-751 improvements
SVN Revision: 1576
2008-09-25 17:26:06 +00:00
Jean-Sébastien Pédron c068d20588 In mod_offline:
o  Remove any compatibility code: the core of Ejabberd expects new
structures.
o  Add table conversion.
o  Add try/catch block around exmpp_stringprep:*prep/1 uses.

To permit the complete removal of the compatibility code, jlib had to be
changed too: the timestamp_to_xml/1 function now returns an #xmlel.

SVN Revision: 1575
2008-09-25 10:46:00 +00:00
Jean-Sébastien Pédron c74ab439ef Convert to exmpp.
SVN Revision: 1574
2008-09-23 13:11:05 +00:00
Jean-Sébastien Pédron 44c77364ce Fix a typo in the exmpp_stringprep module name.
SVN Revision: 1573
2008-09-23 13:10:33 +00:00
Jean-Sébastien Pédron 0dbbf53fbe o Fix a misuse of exmpp_stanza:error/2: the namespace argument (the
first one) was missing.
o  Fix a bug in process_privacy_iq/4 where the #iq record was not
converted back to an #xmlel before calling ejabberd_router:route/3.

SVN Revision: 1572
2008-09-23 13:09:32 +00:00
Jean-Sébastien Pédron 052d006c88 Fix a typo in the exmpp_stringprep module name.
SVN Revision: 1571
2008-09-23 13:06:45 +00:00
Jean-Sébastien Pédron 0e91ea9e5f o Fix a bug in process_sm_iq/3 where a badmatch exception was raised
when the user didn't have a vCard.
o  Fix a bug in remove_user/2 where the exmpp_jid module was use instead
of exmpp_stringprep.

SVN Revision: 1570
2008-09-23 13:05:43 +00:00
Mickaël Rémond eabd25a8bf * src/mod_configure.erl: Fix adhoc commands reply types for "get-online-users-num" and "get-registered-users-num" (EJAB-756).
SVN Revision: 1569
2008-09-22 16:08:37 +00:00
Jean-Sébastien Pédron 5803c51633 Convert to exmpp.
SVN Revision: 1568
2008-09-22 11:18:08 +00:00
Jean-Sébastien Pédron 35a7342416 o Remove unappropriate comments in get_sm_features/5.
o  Use the '_s' variants of NS_* macros instead of a call to
atom_to_list/1 in do_route/4.
o  A call to the stringprep module was left in filter_fields/3.

SVN Revision: 1567
2008-09-22 11:17:23 +00:00
Jean-Sébastien Pédron e9d7ac68da o Fix a bug in get_in_pending_subscriptions() where the type of the
presence stanza was lost.
o  Reorganize a few lines in user_roster() to match mod_roster_odbc.

SVN Revision: 1566
2008-09-18 14:55:43 +00:00
Jean-Sébastien Pédron 56a0c8ed1d Convert to exmpp.
SVN Revision: 1565
2008-09-18 14:55:03 +00:00
Jean-Sébastien Pédron 4eaa8e19c9 Merge from trunk (r1457 to r1563).
SVN Revision: 1564
2008-09-16 14:39:57 +00:00
Badlop 7ff346f612 * doc/guide.tex: Fix explanation of mod_muc's anonymous
option. Make clear that an ejabberd_service can only serve a
single external component. Provide Mnesia directory when setting
clustering (thanks to Matthew Reilly)

SVN Revision: 1563
2008-09-15 18:38:52 +00:00
Badlop 81c70c347f Fix: provide the port as an integer, not string (EJAB-560)
SVN Revision: 1562
2008-09-12 14:31:04 +00:00
Badlop e9d62b39ef * src/web/ejabberd_http.hrl: Provide Host, Port, Headers and
Transfer Protocol in request (thanks to Eric Cestari)(EJAB-560)
* src/web/ejabberd_http.erl: Likewise

SVN Revision: 1561
2008-09-12 11:45:16 +00:00
Badlop df39f93b80 * doc/guide.tex: Fix mod_proxy configuration example
* doc/guide.html: Likewise

SVN Revision: 1560
2008-09-02 17:31:10 +00:00
Mickaël Rémond 943b126d0e * ChangeLog update.
SVN Revision: 1559
2008-09-02 14:17:48 +00:00
Mickaël Rémond b6a706756e * src/odbc/mssql2000.sql: Script for MSSQL 2000
* src/odbc/mssql2005.sql: Script for MSSQL 2005
* src/odbc/mssql.sql: removed

SVN Revision: 1558
2008-09-02 14:14:42 +00:00
Badlop 7ed3ebfaa9 Fix release date of ejabberd 2.0.2 to 28 August 2008
SVN Revision: 1557
2008-08-30 11:17:03 +00:00
Jean-Sébastien Pédron 414948d822 VCard are now stored as #xmlel. Mnesia tables are converted during
startup.

SVN Revision: 1553
2008-08-27 12:39:49 +00:00
Jean-Sébastien Pédron 02e6bf8759 handle_cast({disco_response, ...}, ...) now receives an #iq record:
update the code to handle this.

SVN Revision: 1552
2008-08-27 09:46:25 +00:00
Jean-Sébastien Pédron 8baed08641 Remove a debugging io:format/2.
SVN Revision: 1551
2008-08-27 09:45:01 +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 dfc62ca5be * doc/release_notes_2.0.2.txt: Update for final release
* doc/guide.tex: Windows binary installer requires MSVC++ 5
* doc/guide.html: Likewise

SVN Revision: 1548
2008-08-26 14:26:56 +00:00
Jean-Sébastien Pédron 4e39f4cab1 o Remove compatibility code. Use the atom 'undefined' in JIDs (normal
and short).
o  Add try/catch blocks where Exmpp can raise exceptions.
o  Remove some unused code.
o  Convert on-disk Mnesia database: JIDs, extra XML elements and
askmessage are concerned.
o  By default, 'askmessage' is now an empty binary instead of an empty
string, for consistency's sake.
o  Fix some bugs.

SVN Revision: 1547
2008-08-26 13:59:04 +00:00
Jean-Sébastien Pédron 9f0d79da9a o Use the new functions from jlib.
o  Remove the compatibility code. It's becoming confusing to handle every
case every where. Also, in JIDs (normal and short), the atom "undefined'
is expected, not the empty string anymore!

SVN Revision: 1546
2008-08-26 13:38:49 +00:00
Jean-Sébastien Pédron 80fcd2eb56 Remove commented-out code and use proper variable names.
SVN Revision: 1545
2008-08-26 13:00:35 +00:00
Jean-Sébastien Pédron 5aead42964 Use the new short_prepd_jid/1 function from jlib.
SVN Revision: 1544
2008-08-26 12:58:13 +00:00
Jean-Sébastien Pédron ab75683bc9 short_jid/1 and short_bare_jid/1 now produce a short JID from the
user-provided JID parts. To obtain a short JID from the STRINGPREP'd
parts, use the new short_prepd_jid/1 and short_prepd_bare_jid/1
functions.

SVN Revision: 1543
2008-08-26 12:56:45 +00:00
Christophe Romain 0832ad392d get_items bugfix (EJAB-716)
SVN Revision: 1542
2008-08-25 22:54:48 +00:00
Christophe Romain 11f74201ab Prevent case_clause error when ejabber_odbc:sql_query returns {error, Reason}
SVN Revision: 1540
2008-08-25 13:36:34 +00:00
Christophe Romain 5c9069d677 Prevent case_clause error when ejabber_odbc:sql_query returns {error, Reason}
SVN Revision: 1538
2008-08-25 13:12:23 +00:00
Badlop 2d226b39bf * src/ejabberd_check.erl: Detect correctly MSSQL and ODBC
configuration (EJAB-710)

SVN Revision: 1536
2008-08-25 12:08:22 +00:00
Geoff Cant 35ed848fe8 EJAB-624: fixes mod_muc_room:is_visitor/2 to use get_role not get_affiliation
SVN Revision: 1534
2008-08-23 23:17:17 +00:00
Badlop d08b1c62bb * src/ejabberd_router.erl: Fix call to mnesia match_object
SVN Revision: 1533
2008-08-22 11:35:32 +00:00
Badlop 38205691f4 * doc/guide.tex: Fix names of chatroom to room, user to occupant
* doc/guide.html: Likewise

SVN Revision: 1532
2008-08-21 15:13:25 +00:00
Badlop e37723f4a2 * src/mod_muc/mod_muc_log.erl: MUC log files options: plaintext
format; filename with only room name (EJAB-596)
* doc/guide.tex: Document both options
* doc/guide.html: Likewise

SVN Revision: 1531
2008-08-18 19:08:30 +00:00
Badlop 4ae1bda33f * src/mod_register.erl: Change password using mod_register always
returns success regardless of real result (EJAB-723)
* src/ejabberd_auth.erl: Likewise
* src/ejabberd_auth_external.erl: Likewise
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_odbc.erl: Likewise

SVN Revision: 1530
2008-08-18 18:21:10 +00:00
Christophe Romain 7b1547b2bd Fix call to unexported function nodetree_default:get_subnodes/2
SVN Revision: 1529
2008-08-18 10:29:04 +00:00
Badlop 2be5cb9b50 Minor fixes in text about ejabberd localization
SVN Revision: 1528
2008-08-18 09:17:58 +00:00
Badlop 61a639d5d9 * contrib/extract_translations/extract_translations.erl: Use
Gettext PO for translators, export to ejabberd MSG (EJAB-468)
* contrib/extract_translations/prepare-translation.sh: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise
* src/Makefile.in: New option 'make translations'
* src/msgs/ejabberd.pot: Template translation file
* src/msgs/*.po: Generated from old MSG files
* src/msgs/*.msg: Automatic exported from PO files

SVN Revision: 1527
2008-08-17 16:35:58 +00:00
Badlop bf9377e9a6 * src/msgs/sv.msg: Fixed formatting typos
SVN Revision: 1526
2008-08-16 12:06:13 +00:00
Badlop 2660be962a * src/gen_mod.erl: Export stop_module_keep_config/2 (EJAB-706)
SVN Revision: 1525
2008-08-16 12:03:21 +00:00
Jean-Sébastien Pédron d8c3aae412 Convert to the new #iq record from Exmpp.
SVN Revision: 1524
2008-08-14 13:36:11 +00:00
Jean-Sébastien Pédron 5e78c53572 Remove the compatibility layer and always call modules with the new #iq
record from Exmpp.

SVN Revision: 1523
2008-08-14 13:34:30 +00:00
Jean-Sébastien Pédron 44d3e844a3 Accept 'undefined' as a language and treat it as the empty string.
SVN Revision: 1522
2008-08-14 13:32:31 +00:00
Badlop 73a8d9e373 * doc/guide.tex: Explain that LDAP is read-only storage (thanks to
Evgeniy Khramtsov)
* doc/guide.html: Likewise

SVN Revision: 1521
2008-08-13 11:00:21 +00:00
Christophe Romain ac30a976d4 fix contrib to ejabberd-modules trunk repository
SVN Revision: 1520
2008-08-12 22:05:21 +00:00
Badlop 422d34ddaf * src/msgs/sk.msg: Updated (thanks to Marek Becka)
SVN Revision: 1519
2008-08-11 00:48:57 +00:00
Badlop 80e925d71d * src/msgs/eo.msg: Updated (thanks to Andreas van Cranenburgh)
* src/msgs/nl.msg: Updated (thanks to Andreas van Cranenburgh)
* src/msgs/sv.msg: Updated (thanks to Thore Alstromer and Heysan)

SVN Revision: 1518
2008-08-10 11:40:41 +00:00
Badlop 1d6570cdec Retract from previous commit the code that checked the connection is attempted to a known served component (EJAB-717)
SVN Revision: 1517
2008-08-09 20:09:37 +00:00
Badlop 62f22e8976 * src/ejabberd_service.erl: Fix XEP-0114 compliance: define xmlns
in header of error response; check the connection is attempted to
a served component; include in response the JID of served
component not server (thanks to Sergei Golovan)

SVN Revision: 1516
2008-08-09 18:08:00 +00:00
Jean-Sébastien Pédron 85c2097ece Update to use the new names used in exmpp_jid.
SVN Revision: 1515
2008-08-06 13:51:42 +00:00
Jean-Sébastien Pédron cb20c9b0d7 Update to use the new exmpp_xml:get_attribute/{3,4} API.
SVN Revision: 1514
2008-08-06 13:46:23 +00:00
Jean-Sébastien Pédron d9a493561b Convert to exmpp.
SVN Revision: 1513
2008-08-06 13:44:58 +00:00
Jérôme Sautret fa86e6aa85 More precise ChangeLog for last commit.
SVN Revision: 1512
2008-08-04 13:48:47 +00:00
Jérôme Sautret 4fcd5f8cbe Updated ChangeLog for previous commit.
SVN Revision: 1511
2008-08-04 13:46:57 +00:00
Jérôme Sautret 60308df929 * src/odbc/ejabberd_odbc.erl: Restart the database connection when it's lost or it reaches timeout. Set transaction isolation level to SERIALIZABLE when establishing connection.
SVN Revision: 1510
2008-08-04 13:41:16 +00:00
Badlop bc8fd0607b * doc/release_notes_2.0.2.txt: Added for ejabberd 2.0.2-beta1
SVN Revision: 1503
2008-08-01 10:31:39 +00:00
Badlop 3a5fb23427 * src/web/ejabberd_http.erl: Temporary solution for check of
packet size when HTTPS (EJAB-611)(EJAB-507)(EJAB-574)

SVN Revision: 1502
2008-08-01 08:50:19 +00:00
Badlop 91339fa8f0 * src/msgs/uk.msg: Fix: each string in a single line
* src/msgs/wa.msg: Likewise

* src/msgs/es.msg: Fix typo
* src/msgs/gl.msg: Likewise
* src/msgs/pt-br.msg: Likewise

* src/msgs/zh.msg: Fix some translations (thanks to Zhan Caibao)

* src/msgs/ca.msg: Updated (thanks to Badlop)
* src/msgs/cs.msg: Updated (thanks to Lukas Poliuvk)
* src/msgs/de.msg: Updated (thanks to Nikolaus Polak)
* src/msgs/es.msg: Updated (thanks to Badlop)
* src/msgs/fr.msg: Updated (thanks to Christophe Romain)
* src/msgs/it.msg: Updated (thanks to Luca Brivio)
* src/msgs/ja.msg: Updated (thanks to Tsukasa Hamano)
* src/msgs/no.msg: Updated (thanks to Stian B. Barmen)
* src/msgs/pl.msg: Updated (thanks to Zbyszek Zolkiewski)
* src/msgs/pt-br.msg: Updated (thanks to Otavio Fernandes)
* src/msgs/ru.msg: Updated (thanks to Evgeniy Khramtsov)
* src/msgs/tr.msg: Updated (thanks to Doruk Fisek)
* src/msgs/uk.msg: Updated (thanks to Ruslan Rakhmanin)
* src/msgs/wa.msg: Updated (thanks to Pablo Saratxaga)
* src/msgs/zh.msg: Updated (thanks to Shelley Shyan)

SVN Revision: 1501
2008-07-31 18:07:44 +00:00
Badlop 7b3efbe4eb * README: Update location where mnesia, ebin and priv directories
are installed; install headers and doc (EJAB-696)

SVN Revision: 1500
2008-07-31 11:35:27 +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 756cd06625 * src/mod_muc/mod_muc_room.erl: Support Reasons for all
affiliation and role changes (EJAB-306)

SVN Revision: 1498
2008-07-30 18:24:08 +00:00
Badlop 2660bc514f * src/gen_mod.erl: When ejabberd is kindly stopped, don't forget
modules configuration (EJAB-706)
* src/ejabberd_app.erl: Likewise

SVN Revision: 1497
2008-07-30 18:11:14 +00:00
Badlop a323504a32 * doc/guide.tex: Document how to get error message when ejabberd
crash dumps at start (EJAB-660)
* doc/guide.html: Likewise

SVN Revision: 1494
2008-07-28 16:55:01 +00:00
Jean-Sébastien Pédron 70956ece12 Convert to exmpp.
SVN Revision: 1492
2008-07-25 14:26:59 +00:00
Christophe Romain c68baa953e Speedup startup with many pubsub nodes (EJAB-669)
SVN Revision: 1491
2008-07-25 09:12:44 +00:00
Badlop 46e83cce55 * doc/guide.tex: Include example PAM configuration file
ejabberd.pam (thanks to Evgeniy Khramtsov)(EJAB-704)
* doc/guide.html: Likewise

SVN Revision: 1489
2008-07-24 18:21:40 +00:00
Badlop 1e11525405 * src/mod_proxy65/mod_proxy65_lib.erl: Send protocol compliant
SOCKS5 reply; this breaks support of uncompliant Psi<0.10 (thanks
to Felix Geyer)(EJAB-632)
* src/mod_proxy65/mod_proxy65_stream.erl: Likewise

SVN Revision: 1488
2008-07-24 18:03:28 +00:00
Badlop ce9902da72 * src/mod_register.erl: When a registration is blocked due to IP
limitation, return description in error stanza (EJAB-692)

SVN Revision: 1487
2008-07-24 17:49:37 +00:00
Christophe Romain 55cfcafd92 allow owner to subscribe/get its one node (EJAB-705)
SVN Revision: 1486
2008-07-24 14:07:05 +00:00
Badlop 211966b42e * doc/guide.tex: Document room options allow_visitor_nickchange
and allow_visitor_status (EJAB-624)
* doc/guide.html: Likewise

SVN Revision: 1482
2008-07-24 11:11:19 +00:00
Geoff Cant 135da533fd Altering XForms text for allow_visitor_status mod_muc_room option. (EJAB-624)
SVN Revision: 1480
2008-07-23 17:45:23 +00:00
Geoff Cant c7d45af0aa mod_muc_room allow_visitor_presence option rename (now allow_visitor_status). (EJAB-624)
SVN Revision: 1478
2008-07-23 16:55:46 +00:00
Geoff Cant 2c3260d07b Renaming allow_visitor_presence to allow_visitor_status (EJAB-624).
allow_visitor_status when false will strip status message tags from visitor
presence broadcasts in muc rooms.

SVN Revision: 1477
2008-07-23 16:40:17 +00:00
Geoff Cant e509da74e8 Implementing muc_room visitor presence restrictions. (EJAB-624)
SVN Revision: 1475
2008-07-23 12:31:55 +00:00
Christophe Romain d8dc734d38 subscribing to a node sends only last items (EJAB-700), send_last_items bugfix
SVN Revision: 1474
2008-07-23 01:14:02 +00:00
Christophe Romain 7a49880ffc pubsub improvement, fixes EJAB-684 EJAB-675 EJAB-663
SVN Revision: 1472
2008-07-22 23:41:44 +00:00
Badlop 543fb2d7e4 * src/ejabberd_config.erl: If syntax mistake in config file, show
specific error message (EJAB-616)

SVN Revision: 1470
2008-07-22 16:08:57 +00:00
Jean-Sébastien Pédron adaf392156 o Finish conversion to exmpp for mod_caps.
o  In ejabberd_loca, IQ response handler are now always called with
arguments in the new format.

SVN Revision: 1469
2008-07-22 14:51:19 +00:00
Jean-Sébastien Pédron 37b99639d4 Convert to exmpp.
SVN Revision: 1468
2008-07-22 14:03:11 +00:00
Alexey Shchepin fb43bb0109 * src/odbc/odbc_queries.erl: Fixed a typo
SVN Revision: 1467
2008-07-22 04:17:13 +00:00
Jean-Sébastien Pédron a8ab6c1568 Add support for #xmlel to parse_xdata_submit/1 and friends. This fixes
the user search in mod_vcard.

SVN Revision: 1466
2008-07-21 15:54:47 +00:00
Jean-Sébastien Pédron 4a1e45070e One call to jlib:jid_to_string/1 was remaining.
SVN Revision: 1465
2008-07-21 15:53:58 +00:00
Jean-Sébastien Pédron b33ac47228 Convert to exmpp.
SVN Revision: 1464
2008-07-21 15:30:32 +00:00
Jean-Sébastien Pédron 6e91399922 Convert to exmpp.
SVN Revision: 1463
2008-07-21 15:29:52 +00:00
Jean-Sébastien Pédron 75a8be230b Prepare gen_iq_handler to pass arguments in the new format to a built-in
list of modules known to support them. Other modules will still receive
arguments in the old format.

SVN Revision: 1462
2008-07-21 15:28:44 +00:00
Jérôme Sautret 999c81e79c * src/ejabberd_ctl.erl: Call reopen_log_hook for each virtual host.
SVN Revision: 1461
2008-07-18 15:55:39 +00:00
Badlop 1b7a36bf64 * src/mod_muc/mod_muc_room.erl: Fix to allow a server admin to add
himself as owner of a room (EJAB-687)

SVN Revision: 1460
2008-07-17 17:32:11 +00:00
Jean-Sébastien Pédron 07b1210b50 Merge revisions from 1444 to revision 1457 from trunk.
SVN Revision: 1458
2008-07-17 15:33:50 +00:00
Jean-Sébastien Pédron 532e8ee228 Start conversion to exmpp. For now, only direct calls from ejabberd_c2s
are done. Calls through gen_iq_handler aren't.

SVN Revision: 1457
2008-07-17 15:26:48 +00:00
Christophe Romain e361835cea use -DSSL39 if compiling with R12
SVN Revision: 1456
2008-07-16 22:24:03 +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
Badlop 970e9e0843 * src/*.hrl: Get back all ejabberd header files to their original
placement in src/ subdirectories (EJAB-696)
* src/*/*.erl: Likewise
* src/*/Makefile.in: Likewise
* src/Makefile.in: Install header files in system include/ dir,
reproducing the subdirectory structure of src/

SVN Revision: 1453
2008-07-16 16:58:42 +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
Badlop ece37b1dad * src/ejabberdctl.template: Update environment variable names
SVN Revision: 1449
2008-07-16 10:55:50 +00:00
Badlop 0b3f830188 * src/ejabberdctl.template: Small fix so arguments of the command
are also passed to erl

SVN Revision: 1447
2008-07-15 21:43:22 +00:00
Badlop 6c0f497281 * doc/guide.tex: Improve explanation of option 'hosts' in
ejabberd_service
* doc/guide.html: Likewise

SVN Revision: 1446
2008-07-15 21:03:48 +00:00
Jean-Sébastien Pédron 574dbbfd08 Merge revisions from 1434 to revision 1444 from trunk.
SVN Revision: 1445
2008-07-15 08:45:05 +00:00
Badlop 596b2dbe12 Removed testing code
SVN Revision: 1444
2008-07-14 10:14:41 +00:00
Badlop 3f87768c8c * doc/guide.tex: Update what permissions does enable-user grant
* doc/guide.html: Likewise

* src/configure.ac: Don't explicitely put root privileges when a
user is not explicitely enabled
* src/configure: Likewise
* src/Makefile.in: Likewise

SVN Revision: 1443
2008-07-14 10:06:13 +00:00
Badlop d76ca7c65b * src/Makefile.in: Fix docdir so it recognizes prefix. If sbin dir
does not exist, create it. Fix cookiefile permission
check. (EJAB-696)

SVN Revision: 1442
2008-07-13 23:32:54 +00:00
Badlop f25316c1e7 * src/configure.ac: Update installation permissions (EJAB-402)
* src/configure: Likewise

* src/Makefile.in: The mnesia, ebin and priv dirs are now
installed in different locations. Install header files and
documentation (EJAB-696)
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

* include/*.hrl: Place for all ejabberd header files (EJAB-696)
* src/*/*.erl: Update references to header files
* src/*/Makefile.in: Include the include/ dir

SVN Revision: 1441
2008-07-13 19:10:01 +00:00
Badlop 6134205383 Install ejabberdctl in /sbin as usual because it is a daemon, not a user program.
SVN Revision: 1440
2008-07-12 23:08:01 +00:00
Badlop 871d1dfad6 * src/configure.ac: Allow to execute ejabberd with a normal
system user (thanks to Viq)(EJAB-402)
* src/configure: Likewise
* src/ejabberdctl.template: Likewise
* src/Makefile.in: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1439
2008-07-12 22:02:16 +00:00
Badlop 983022438e * src/configure.ac: Improve legibility
* src/aclocal.m4: Likewise
* src/configure: Likewise

* src/ejabberdctl.template: Remove garbage variable. Document node
option

* doc/guide.tex: Add references to sections.
* doc/guide.html: Likewise

SVN Revision: 1438
2008-07-12 21:32:45 +00:00
Badlop e7b42f9499 * src/mod_register.erl: Revert support for io_lib newline, since
there is a standard character that representes newline (EJAB-501)
* doc/guide.tex: Update documentation to explain newline character
* doc/guide.html: Likewise
* src/ejabberd.cfg.example: Likewise

SVN Revision: 1436
2008-07-11 13:35:08 +00:00
Jean-Sébastien Pédron 332fb55e3a MFC:
Merge revisions from 1362 to revision 1434 from trunk.

SVN Revision: 1435
2008-07-11 12:48:27 +00:00
Jean-Sébastien Pédron 5610d00b4d Convert to exmpp. Note that this module hasn't been tested yet!
SVN Revision: 1434
2008-07-11 12:41:48 +00:00
Jean-Sébastien Pédron 8bfccb42a9 Exmpp now takes care of stanza serialization and compatible namespaces.
SVN Revision: 1433
2008-07-11 12:40:49 +00:00
Badlop 429b7bc169 * src/configure.ac: Don't check for erlang header file (EJAB-232)
* src/configure: Likewise

SVN Revision: 1430
2008-07-10 18:09:18 +00:00
Badlop cd5bc22bdb * src/configure.ac: Check for erlang header files (EJAB-232)
* src/configure: Likewise

SVN Revision: 1429
2008-07-09 21:33:34 +00:00
Badlop f1f0bb0431 * src/mod_pubsub/mod_pubsub.erl: Fix compilation warnings
* src/mod_pubsub/node_zoo.erl: Likewise
* src/mod_shared_roster.erl: Likewise

SVN Revision: 1428
2008-07-09 21:26:25 +00:00
Badlop a2bed6709c * src/mod_shared_roster.erl: Allow to get subscribed to a contact
that is already in the roster by means of a shared roster group:
add it to another roster group and it gets subscribed
automatically (EJAB-407)
* src/mod_roster.erl: Likewise

SVN Revision: 1427
2008-07-09 19:06:44 +00:00
Badlop fc911a43ff * src/mod_muc/mod_muc_log.erl: Fix XHTML compliance: ensure some
language is set, include ID attribute in each message, add
microseconds to ensure unique value (EJAB-497)

SVN Revision: 1426
2008-07-09 18:39:41 +00:00
Badlop 1f004c56ac * src/mod_register.erl: Support for io_lib newline character in
the body of welcome_message (EJAB-501)
* doc/guide.tex: Document the newline character
* src/ejabberd.cfg.example: Example usage of newline character

SVN Revision: 1425
2008-07-09 17:53:56 +00:00
Badlop e3ba72f3dd * src/ejabberd_config.erl (load_file): error message on sasl.log
is not flattened (EJAB-616)

SVN Revision: 1424
2008-07-09 16:08:32 +00:00
Badlop 70d2682c6a * doc/guide.tex: mod_muc_log XMPP URI supports the updated version
RFC 5122 (EJAB-631)
* doc/guide.html: Likewise

SVN Revision: 1423
2008-07-09 14:07:27 +00:00
Jean-Sébastien Pédron 7ca5bebab3 Convert to exmpp.
SVN Revision: 1422
2008-07-09 09:16:03 +00:00
Jean-Sébastien Pédron d5aa4be7e5 Convert #xmlelement returned by the 'c2s_stream_features' hook to
#xmlel.

SVN Revision: 1421
2008-07-09 09:14:19 +00:00
Jean-Sébastien Pédron 1a687a4f1a SASL errors are now atoms, not strings anymore.
SVN Revision: 1420
2008-07-08 15:43:52 +00:00
Badlop 19308d34e2 * tools/ejabberdctl: Work also when 'which' is unavailable
SVN Revision: 1419
2008-07-08 11:07:45 +00:00
Christophe Romain 92ce9af092 typo fix
SVN Revision: 1418
2008-07-08 10:31:47 +00:00
Christophe Romain f74fb8ea2d improve ip fetching patch
SVN Revision: 1416
2008-07-08 10:19:57 +00:00
Badlop 9626c41817 * src/Makefile.in: Spool, config and log dirs: writtable by owner,
readable by group, nothing by others (EJAB-686)
* doc/guide.tex: New section Securing sensible files
* doc/guide.html: Likewise

SVN Revision: 1413
2008-07-07 14:52:47 +00:00
Badlop 19a1ddfa44 * doc/guide.tex: Solaris Makefile install: use ginstall (thanks to
Jonathan Auer)(EJAB-649)
* doc/guide.html: Likewise

SVN Revision: 1412
2008-07-07 08:47:47 +00:00
Jérôme Sautret 52390e1876 Removed non ascii characters in changelog
SVN Revision: 1411
2008-07-04 08:35:11 +00:00
Jérôme Sautret d5e2002ffa * src/mod_privacy_odbc.erl: Support for privacy lists in MySQL (thanks to Igor Goryachev)(EJAB-538)
SVN Revision: 1409
2008-07-03 16:09:45 +00:00
Christophe Romain 35d25d3420 PubSub improvements, and solves (EJAB-453) (EJAB-608)
SVN Revision: 1408
2008-07-03 09:56:31 +00:00
Jean-Sébastien Pédron 13b78b1ad2 Routing is now done with #xmlel. A warning is printed if those modules
have to route an old #xmlelement.

SVN Revision: 1406
2008-07-01 15:51:34 +00:00
Jean-Sébastien Pédron 48cf5cb84a Do not use the #iq record anymore internally. However it's still created
and passed to other modules.

SVN Revision: 1405
2008-07-01 14:25:02 +00:00
Jean-Sébastien Pédron 5317dd64d7 Change warning message.
SVN Revision: 1404
2008-07-01 14:20:20 +00:00
Jean-Sébastien Pédron a25609f66b Accept new #xmlel in functions that create #iq. A warning is printed
when these functions are called with an old #xmlelement.

SVN Revision: 1403
2008-07-01 14:19:36 +00:00
Jean-Sébastien Pédron d6e6432a46 Convert to exmpp.
SVN Revision: 1402
2008-07-01 13:34:51 +00:00
Jean-Sébastien Pédron 094fa47f9f Convert gen_iq_handler to exmpp.
SVN Revision: 1401
2008-07-01 10:21:35 +00:00
Jean-Sébastien Pédron 6f7cf2e58b Use a function to convert to old structures instead of duplicating code
inside the module.

SVN Revision: 1400
2008-07-01 10:20:01 +00:00
Jean-Sébastien Pédron b08ae07347 acl doesn't require conversion anymore.
SVN Revision: 1399
2008-07-01 09:46:57 +00:00
Jean-Sébastien Pédron ffbf8d5faa Convert acl to exmpp.
SVN Revision: 1398
2008-07-01 09:41:32 +00:00
Jean-Sébastien Pédron f55274c7fb o Use jlib:short_bare_jid/1.
o  Rewrite is_auth_packet/1 to use new formats.
o  Don't convert <presence/> before calling ejabberd_sm:set_presence/7.
o  Don't convert broadcast children, because it's an internal special
element.

SVN Revision: 1397
2008-07-01 09:17:48 +00:00
Jean-Sébastien Pédron b9074097da Forgot to convert a <presence/> from the new to the old record.
SVN Revision: 1396
2008-07-01 09:13:49 +00:00
Jean-Sébastien Pédron 83a33726ce Add function short_bare_jid/1.
SVN Revision: 1395
2008-07-01 09:12:59 +00:00
Jean-Sébastien Pédron 8c33e12616 Use the new clause of exmpp_stanza:reply_with_error/2, exmpp_iq:error/2,
exmpp_iq:error_without_original/2 and the new exmpp_jid:make_bare_jid/1.

SVN Revision: 1394
2008-07-01 08:01:06 +00:00
Jean-Sébastien Pédron 87218e1447 Convert to exmpp.
SVN Revision: 1393
2008-07-01 07:49:57 +00:00
Jean-Sébastien Pédron 06965000a5 Before doing any routing, the router print a warning if old structures
are used. Then it converts the structures to the old format and route
them. The router doesn't care about the structures format but the
conversion is necesary for code called from this module.

In C2S and S2S, no conversion is done before calling
ejabberd_router:route/3.

SVN Revision: 1392
2008-06-30 16:55:03 +00:00
Jean-Sébastien Pédron cc033b3b98 o Use the new functions from jlib.
o  Use the new exmpp_xml:node_to_list/3.

SVN Revision: 1391
2008-06-30 15:51:23 +00:00
Jean-Sébastien Pédron 290040ad9d o Add function to convert to and from old ejabberd #jid record.
o  Move function short_jid/1 from ejabberd_c2s.

SVN Revision: 1390
2008-06-30 15:49:58 +00:00
Jean-Sébastien Pédron 264e72830b Convert to exmpp.
SVN Revision: 1389
2008-06-30 14:04:31 +00:00
Jean-Sébastien Pédron d05c2ee8a1 Use -include_lib instead of -include to include exmpp.hrl. This is a
better solution than specifying the path (with -I) on erlc(1) command
line.

SVN Revision: 1388
2008-06-30 12:13:15 +00:00
Badlop 2ccf410a75 * src/ejabberd_ctl.erl: Web Admin and Ad-hoc admin: dump only
persistent tables (EJAB-678)

SVN Revision: 1387
2008-06-29 11:59:06 +00:00
Badlop 5e25cbcaa9 * src/mod_pubsub/node_pep.erl: Complain if mod_caps disabled and
mod_pubsub has PEP plugin enabled (EJAB-677)

SVN Revision: 1386
2008-06-29 11:34:30 +00:00
Badlop 152efbb112 * src/mod_muc/mod_muc_room.erl: Allow to store room
description (thanks to Christopher Dupont)(EJAB-670)

SVN Revision: 1385
2008-06-28 17:47:19 +00:00
Jean-Sébastien Pédron b32aba27c1 o Use the new exmpp namespace macro names.
o  Update send_element/2 to use exmpp new to_list functions.

SVN Revision: 1384
2008-06-27 13:46:08 +00:00
Jean-Sébastien Pédron 22e79490ff Convert to exmpp.
SVN Revision: 1383
2008-06-26 15:48:19 +00:00
Jean-Sébastien Pédron 1a311a30b5 o Use a macro in ?DEFAULT_NS instead of the namespace atom directly.
o  Comment DBGFSM our again.
o  Remove macro ERR_SERVICE_UNAVAILABLE.
o  In wait_for_auth and is_auth_packet, an empty resource is returned as
'undefined', not the empty string in the {auth, ...} tuple.
o  In handle_sync_event, remove a debugging printf.
o  In handle_info({route, ...}), use macro IS_PRESENCE & friends instead
of direct matching with NS_JABBER_CLIENT and name. This way, the S2S
doesn't have to change the namespace of all its incoming stanzas to
NS_JABBER_CLIENT.
o  In send_element, for stanzas under the NS_JABBER_SERVER namespace, lie
to exmpp_xml by telling it that this namespace is the default one.

SVN Revision: 1382
2008-06-26 15:47:21 +00:00
Jean-Sébastien Pédron 999f3233bb Fix short JID comparison in get_subscribed_and_online; it was using
'undefined' instead of empty strings.

SVN Revision: 1381
2008-06-25 13:27:03 +00:00
Jean-Sébastien Pédron 07651d712f Finish ejabberd_c2s conversion with the functions related to offline
stanzas.

SVN Revision: 1380
2008-06-25 12:37:45 +00:00
Jean-Sébastien Pédron 6f931ce4fd Convert all presence-related functions.
SVN Revision: 1378
2008-06-24 16:12:56 +00:00
Jean-Sébastien Pédron e93e846e16 o Use the new exmpp_stream:opening_reply/3 function in wait_for_stream/2.
o  The function terminate/3 is converted to exmpp.

SVN Revision: 1377
2008-06-24 09:44:56 +00:00
Jean-Sébastien Pédron 4e2e68a3fb The handle_info clause that treats routing order is now converted.
In-memory sets and dict still use the short JID form with empty strings
for unspecified fields. Users are able to connect to ejabberd but some
features don't seem to work proprerly.

SVN Revision: 1376
2008-06-24 08:55:24 +00:00
Jean-Sébastien Pédron e95df7999f Convert JID to the expected form outside of the C2S (empty fields must
be set to the empty string). This fixes the broken routing.

SVN Revision: 1375
2008-06-23 11:47:10 +00:00
Badlop b6fd0a5ca5 * src/web/ejabberd_http.erl: Support PUT and DELETE methods in
ejabberd_http (thanks to Eric Cestari)(EJAB-662)

SVN Revision: 1373
2008-06-21 00:19:57 +00:00
Badlop 7a3069b68d * doc/guide.tex: Explain that S2S outgoing first tries IPv4 and if
that fails then tries IPv6
* doc/guide.html: Likewise

SVN Revision: 1372
2008-06-21 00:12:06 +00:00
Jean-Sébastien Pédron 2a43998444 o Change the usage of #state.lang somewhat.
o  Fix value of DefaultLang: it doesn't contain the whole serialized
attribute.
o  Use exmpp_jid:make_bare_jid/2 more.

I started to work on the second half of the module and discovered
several annoying things:
o  JID are represented in two forms: the #jid record and the
{N, D, R} tuple.
o  Sometimes, #xmlelement may contain non-#xml* tuples in their
children. This is the case for some <presence/> stanzas. Their
children are used to pass random data.
I'm less and less convicted that ejabberd_c2s can be fully converted
without starting to work on other modules.

SVN Revision: 1370
2008-06-20 14:54:59 +00:00
Jean-Sébastien Pédron 06eea52ad8 Update the svn:ignore property.
SVN Revision: 1369
2008-06-20 12:56:39 +00:00
Jean-Sébastien Pédron 389b5e6448 First bunch of modifications to use exmpp. All FSM state function are
updated. But other functions are not for now.

Users are able to connect to ejabberd but some features may not work.

SVN Revision: 1368
2008-06-20 12:52:29 +00:00
Jean-Sébastien Pédron a19f280fcc Enable the new #xmlel record.
SVN Revision: 1367
2008-06-20 12:50:20 +00:00
Jean-Sébastien Pédron e4646a6788 Add exmpp detection.
SVN Revision: 1366
2008-06-20 12:49:39 +00:00
Jean-Sébastien Pédron 58bfea2ad1 Replace the use of xml_stream by exmpp_xmlstream. exmpp_xml is
configured to produce old #xmlelement records. exmpp_xmlstream is
configured to send old xmlstreamstart tuple.

Users are able to connect to ejabberd. 

Next step: ejabberd_c2s.

SVN Revision: 1365
2008-06-19 10:23:52 +00:00
Christophe Romain cf8be23af1 allow get_default on PEP nodes (EJAB-656)
SVN Revision: 1364
2008-06-19 09:08:39 +00:00
Jean-Sébastien Pédron ad4a1c2a59 Create a branch "road-to-exmpp". This is a development branch that
will receive all the changes to make ejabberd use the new "exmpp"
application.

SVN Revision: 1362
2008-06-19 08:48:45 +00:00
Badlop 5fdcb52306 * src/ejabberd.app: The ejabberd version number is defined in the
OTP application resource file, in the key 'vsn' (EJAB-657)
* src/ejabberd.hrl: The macro VERSION now consults the ejabberd
application key vsn
* src/configure.erl: Load the ejabberd application description
* doc/Makefile: Read ejabberd version from ejabberd.app vsn
* doc/api/Makefile: Likewise

SVN Revision: 1361
2008-06-18 21:33:48 +00:00
Christophe Romain fe82bf3e81 temporary roster_groups_allowed (EJAB-655)
SVN Revision: 1359
2008-06-18 16:35:03 +00:00
Christophe Romain 638d789ae6 pubsub get_default bugfix (EJAB-656)
SVN Revision: 1358
2008-06-18 16:19:18 +00:00
Badlop cbf63d06a8 * src/mod_muc/mod_muc_room.erl: Allow admins to send messages to
rooms even if not joined (EJAB-645)
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1356
2008-06-13 18:55:26 +00:00
Badlop e22913d46f * src/ejabberd.cfg.example: Add registration_timeout (EJAB-653)
SVN Revision: 1355
2008-06-13 17:51:01 +00:00
Badlop 44e0a17d80 * doc/guide.tex: Title in HTML is shorter. Update several external URIs.
SVN Revision: 1354
2008-06-13 15:25:57 +00:00
Badlop 8f7d9de0b6 * doc/guide.tex: Document ldap_local_filter (EJAB-179)
SVN Revision: 1353
2008-06-13 10:13:44 +00:00
Badlop d27f41a9e8 * doc/guide.tex: Table of listener modules converted to
description. Table of modules overview simplified, and module
names link to their sections.
* doc/guide.html: Regenerated with all the latest changes

SVN Revision: 1352
2008-06-12 23:52:13 +00:00
Badlop 795263b5d4 * doc/guide.tex: Fix indentation of verbatim text
SVN Revision: 1351
2008-06-12 23:01:09 +00:00
Badlop a8140bca89 * doc/guide.tex:
Changes in CSS: verbatim text is indented and has grey background;
descriptions are indented; table borders are softer.

SVN Revision: 1350
2008-06-12 22:00:51 +00:00
Badlop 9507a0001d * doc/guide.tex: Permanent reference URL for sections (EJAB-651)
SVN Revision: 1349
2008-06-12 21:54:30 +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
Badlop be8d1902d0 * doc/guide.tex: Small fixes (thanks to Christoph Anton Mitterer)
* doc/introduction.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1347
2008-06-08 16:52:25 +00:00
Badlop 95462d3f25 * doc/guide.tex: Document ejabberdctl status code (EJAB-633)
* doc/guide.html: Likewise

SVN Revision: 1346
2008-06-05 12:04:43 +00:00
Badlop 59201f1def * src/msgs/pl.msg: Bugfix in arguments of translated string that
could crash the room (thanks to Anastasia Gornostaeva)

SVN Revision: 1345
2008-06-04 13:21:36 +00:00
Badlop 1e345eb0fc * src/web/ejabberd_web.erl (make_xhtml/2): Allow to include
elements in the HTTP header

SVN Revision: 1344
2008-05-31 18:21:43 +00:00
Badlop 110a4b4518 * src/odbc/odbc_queries.erl (del_user_return_password): Return
password (thanks to Oleg Palij)

SVN Revision: 1343
2008-05-31 17:09:13 +00:00
Mickaël Rémond 5e9576ffa3 * src/ejabberd_s2s.erl: Added s2s_send_packet and s2s_receive_packet hooks (EJAB-635).
* src/ejabberd_s2s_in.erl: Likewise.

SVN Revision: 1342
2008-05-22 10:53:49 +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
Badlop c4366a54cc * README: R12 support: remove compilation warning (EJAB-630)
SVN Revision: 1340
2008-05-22 00:01:18 +00:00
Christophe Romain 3c1efb8c4d add release_notes_2.0.1
SVN Revision: 1338
2008-05-19 22:35:01 +00:00
Badlop 9bdaa45981 * doc/guide.html: Update
SVN Revision: 1335
2008-05-19 09:45:44 +00:00
Badlop 30f54a6bfc * src/configure.ac: R12 support: remove compilation
warning (EJAB-630)
* src/configure: Likewise
* doc/guide.tex: Likewise

SVN Revision: 1334
2008-05-19 09:20:35 +00:00
Badlop b503e02b09 * doc/guide.tex: Describe how to disable registration
limitation (EJAB-614)

SVN Revision: 1333
2008-05-19 09:13:19 +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
Badlop 4e77bae206 * src/extauth.erl: Log strange responses from extauth script. Use
timeout (EJAB-627)

SVN Revision: 1330
2008-05-17 11:44:25 +00:00
Badlop c892a60da5 * src/mod_muc/mod_muc_room.erl: Allow change_state of a room
SVN Revision: 1329
2008-05-16 18:05:03 +00:00
Christophe Romain 5bec1eedc1 Change FSMTIMEOUT to 30s
SVN Revision: 1328
2008-05-16 15:29:33 +00:00
Badlop da56452fba * src/mod_muc/mod_muc_room.erl: Return Forbidden error message
when user sends private message in a room that disallows
it (EJAB-595)

SVN Revision: 1323
2008-05-12 20:35:43 +00:00
Badlop 98e47e8c73 * src/web/ejabberd_http.erl (parse_auth): Allow password that
include colon character (EJAB-522)

SVN Revision: 1322
2008-05-12 17:56:27 +00:00
Mickaël Rémond 977a20700a * src/mod_ip_blacklist.erl: Better error handling (EJAB-625).
SVN Revision: 1321
2008-05-09 19:53:06 +00:00
Mickaël Rémond 1a2bb06075 * src/mod_ip_blacklist.erl: ignore when we do not have the IP.
SVN Revision: 1320
2008-05-08 14:55:06 +00:00
Mickaël Rémond e4f098a104 * src/mod_ip_blacklist.erl: Update the list every 6 hours.
SVN Revision: 1319
2008-05-05 16:31:48 +00:00
Mickaël Rémond 740ce75599 * src/mod_ip_blacklist.erl: Added C2S blacklist support (EJAB-625).
SVN Revision: 1318
2008-05-05 16:25:52 +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
Alexey Shchepin 8267194d5e * src/ejabberd_receiver.erl: Don't activate a socket untill its
receiver process is controlling it

SVN Revision: 1316
2008-05-04 07:38:24 +00:00
Christophe Romain 2304f8cbc8 XEP-0115 patch (EJAB-618)
SVN Revision: 1313
2008-04-30 08:49:39 +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 e5879f4349 * src/ejabberd.cfg.example: Small improvements in explanations
* doc/guide.tex: Document MUC room options (EJAB-619)

SVN Revision: 1310
2008-04-29 16:44:12 +00:00
Badlop 1cbfc60570 * doc/guide.tex: Document the option max_s2s_connections
SVN Revision: 1307
2008-04-28 18:07:23 +00:00
Christophe Romain edf1ed5c87 remove unused served_hosts option
SVN Revision: 1306
2008-04-28 13:02:07 +00:00
Alexey Shchepin 85d3b27d71 * src/mod_muc/mod_muc_room.erl: Fixed room shaper processing
SVN Revision: 1305
2008-04-27 19:06:34 +00:00
Badlop 4c937ab94e * src/mod_shared_roster.erl: Fix for new registered accounts not
being immediately shown in an 'all' special shared roster
group (thanks to Alexey Shchepin) (EJAB-71)
* src/mod_register.erl: New vhost event user_registered

SVN Revision: 1303
2008-04-26 17:37:43 +00:00
Badlop 0b5720906c * doc/guide.tex: Document option registration_timeout (EJAB-614)
SVN Revision: 1302
2008-04-25 22:45:45 +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 b1756e8e34 * src/treap.erl: Bugfix
* src/mod_register.erl: Fixed table creation, timeout isn't
activated when registration fails

SVN Revision: 1300
2008-04-23 13:14:08 +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
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
Badlop 981a4a9cd8 * doc/guide.tex: Clarification: PEP is enabled in default config
SVN Revision: 1295
2008-04-16 15:44:58 +00:00
Christophe Romain d46b7d5908 Cache negative response (EJAB-474)
SVN Revision: 1294
2008-04-14 12:02:18 +00:00
Badlop 7c64509c46 * src/web/ejabberd_web_admin.erl: Include Last-Modified HTTP
header in responses to allow caching (EJAB-546)

SVN Revision: 1292
2008-04-12 08:09:05 +00:00
Badlop cf8c08c980 * src/Makefile.in: Improved indentation of GCC call
* src/ejabberd_zlib/Makefile.in: Likewise
* src/mod_irc/Makefile.in: Likewise
* src/stringprep/Makefile.in: Likewise
* src/tls/Makefile.in: Likewise

SVN Revision: 1291
2008-04-11 17:32:20 +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 b994e4bab2 Merge SVN r1287 from trunk to 2.0.x branch:
* src/tls/tls_drv.c: Fixed gcc signedness warnings (EJAB-447)
* src/ejabberd_zlib/ejabberd_zlib_drv.c: Likewise

* src/expat_erl.c: Removed R9B workaround (EJAB-447)

SVN Revision: 1289
2008-04-11 09:25:54 +00:00
Alexey Shchepin 9733e6874e * src/ejabberd_config.erl: Removed a dependency on string:to_upper
SVN Revision: 1288
2008-04-11 05:52:10 +00:00
Alexey Shchepin 8b690c9f9f * src/tls/tls_drv.c: Fixed gcc signedness warnings
* src/ejabberd_zlib/ejabberd_zlib_drv.c: Likewise

SVN Revision: 1287
2008-04-11 05:20:08 +00:00
Alexey Shchepin bd884274c0 * src/expat_erl.c: Removed R9B workaround
SVN Revision: 1286
2008-04-11 05:19:27 +00:00
Christophe Romain 367610dd38 pubsub identity and database update bugfix
SVN Revision: 1285
2008-04-10 14:11:06 +00:00
Mickaël Rémond bbf90da6d0 * Changelog: typo.
SVN Revision: 1282
2008-04-10 08:14:58 +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 2af65d4f42 * src/ejabberd_auth_ldap.erl: LDAP function to get the number of
registered users is too slow (EJAB-331): set timeout in LDAP
search queries (thanks to Evgeniy Khramtsov) and return the number
of registered users.

SVN Revision: 1280
2008-04-08 09:37:06 +00:00
Mickaël Rémond 1b13449194 * doc/guide.tex: Documented the IQ discipline {queue, N}.
* doc/guide.html: Likewise.

SVN Revision: 1278
2008-04-07 13:18:42 +00:00
Badlop 2498bdaad9 * doc/guide.tex: Fix default_room_opts with default_room_options
* doc/guide.html: Likewise

SVN Revision: 1277
2008-04-05 10:53:32 +00:00
Badlop 076132a5d4 * src/ejabberd_auth_ldap.erl (get_vh_registered_users_number): New
function that returns 0 registered users (EJAB-331).

SVN Revision: 1276
2008-04-04 18:57:01 +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
Badlop 1649dec58e * src/ejabberd_config.erl: Add support to include additional
configuration files. Add support for macro definition and
usage. (EJAB-593)
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1273
2008-04-02 16:31:15 +00:00
Christophe Romain f0ee4f999d Do not ignore values passed from configure (EJAB-592)
SVN Revision: 1272
2008-04-02 14:24:18 +00:00
Christophe Romain 37fc28ef49 add condition inclusion of pep in disco identity (EJAB-564)
SVN Revision: 1268
2008-04-02 09:06:28 +00:00
Badlop 39b35cf54b * doc/guide.tex: Updated command line parameters, epmd section
* doc/guide.html: Likewise

SVN Revision: 1267
2008-04-01 12:00:34 +00:00
Christophe Romain ef6ce3c7c0 typo fix on ejabberdctl.template
SVN Revision: 1266
2008-04-01 11:47:51 +00:00
Badlop 5fd627b85b * doc/api/Makefile: Report the correct ejabberd version. When
cleaning, remove also erlang.png

* src/mod_muc/mod_muc_room.erl: Update source code to prevent
warning messages from EDoc
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/mod_pubsub/node_default.erl: Likewise
* src/mod_pubsub/nodetree_default.erl: Likewise
* src/mod_pubsub/nodetree_virtual.erl: Likewise
* src/mod_pubsub/pubsub.hrl: Likewise

SVN Revision: 1265
2008-04-01 10:11:39 +00:00
Christophe Romain 273c076ef6 Add firewalling port range definition
SVN Revision: 1264
2008-04-01 09:07:29 +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 2510d71ae6 * doc/webadmmain.png: Updated to ejabberd 2.0.0
* doc/webadmmainru.png: Likewise

* doc/disco.png: Removed because not used

* doc/guide.tex: Fix Latex reference to webadmin section. Update
explanation of screenshots. Update xmpp addresses of Mickael
Remond and Sander Devrieze.
* doc/guide.html: Likewise

* doc/Makefile: Remove the Hevea deprecated option -noiso
* doc/guide.html: Likewise
* doc/dev.html: Likewise
* doc/features.html: Likewise

SVN Revision: 1261
2008-03-31 10:36:41 +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 e13908c26c * doc/guide.tex: Fix epam location (thanks to Evgeniy Khramtsov)
* doc/guide.html: Likewise

SVN Revision: 1259
2008-03-27 00:28:44 +00:00
Badlop ab1610021d * src/Makefile.in: Support for parallel compilation with 'make -j'
in multi core CPUs: fix compilation dependencies; compile
behaviors before other source code. (thanks to Jonathan Schleifer)
* src/mod_pubsub/Makefile.in: Likewise
* src/eldap/Makefile.in: Likewise

SVN Revision: 1258
2008-03-26 09:27:46 +00:00
Alexey Shchepin 9b3926baf1 * src/ejabberd_local.erl: The iq_response table wasn't cloned
automatically on all nodes which resulted in a single point of
failure

SVN Revision: 1257
2008-03-25 22:23:38 +00:00
Badlop 28c082551d * src/Makefile.in: Only try to install epam if pam was enabled
in configure script (thanks to Etan Reisner)(EJAB-586)

SVN Revision: 1256
2008-03-25 18:59:45 +00:00
Badlop 48e066999b * src/Makefile.in: Failure to install epam is not
critical (EJAB-573)

SVN Revision: 1255
2008-03-25 17:18:47 +00:00
Badlop ea510f9d48 * doc/guide.tex: mod_vcard_ldap replace NICK with NICKNAME (thanks
to Andreas Ntaflos)
* doc/guide.html: Likewise

SVN Revision: 1254
2008-03-24 18:57:41 +00:00
Badlop 9e5721a5d9 * src/msgs/de.msg: Fix irc typo (thanks to Jonathan Schleifer)
* src/msgs/cs.msg: Likewise
* src/msgs/pl.msg: Likewise
* src/msgs/sk.msg: Likewise

SVN Revision: 1253
2008-03-24 01:28:55 +00:00
Mickaël Rémond 2d363b8a5c SVN Revision: 1252 2008-03-23 14:23:25 +00:00
Mickaël Rémond f40476e12f SVN Revision: 1251 2008-03-23 14:22:16 +00:00
Mickaël Rémond f7a9e5bac0 * src/eldap/Makefile.in: Generate ELDAPv3.beam during first Makefile pass (EJAB-583).
SVN Revision: 1249
2008-03-22 16:42:28 +00:00
Badlop 30739179ee * doc/guide.tex: Document service_check_from (EJAB-576)
* doc/guide.html: Likewise

SVN Revision: 1248
2008-03-22 00:33:28 +00:00
Badlop 86df7de48f * src/mod_caps.erl: Move two log calls ERROR_MSG to DEBUG
* src/shaper.erl: Move log call INFO_MSG to DEBUG

SVN Revision: 1247
2008-03-21 18:58:07 +00:00
Badlop efec28ada7 * doc/guide.tex: Document s2s_default_policy and
s2s_host (EJAB-575)
* doc/guide.html: Likewise

SVN Revision: 1246
2008-03-21 16:17:37 +00:00
Christophe Romain 1247a98cf2 Pubsub subscription is now wrapped in pubsub tags (EJAB-580)
SVN Revision: 1244
2008-03-21 16:05:32 +00:00
Christophe Romain 618af5e07a Seek epam binary into priv/bin (EJAB-573)
SVN Revision: 1243
2008-03-21 15:42:14 +00:00
Christophe Romain b2bd9759c8 Rewrite io:format calls to loglevel macros (EJAB-555)
SVN Revision: 1239
2008-03-21 14:44:16 +00:00
Badlop 694baba127 * doc/guide.tex: Improve explanation of how to start ejabberd when
binary installer. Don't recommend R12 in Windows compilation.
Describe what happens if maxrate shaper is exceeded.
* doc/guide.html: Likewise

SVN Revision: 1238
2008-03-20 19:24:27 +00:00
Mickaël Rémond 4cef493b91 * src/eldap.erl: Improved logging. We now use ejabberd logging framework (EJAB-582).
* src/eldap.erl: Faster LDAP reconnection (Thanks to Christophe Romain) (EJAB-581)

SVN Revision: 1236
2008-03-20 16:28:36 +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
Mickaël Rémond 4cf68c2f9f * src/ejabberd_ctl.erl: API improvement: Added reopen_log_hook (EJAB-565)
SVN Revision: 1234
2008-03-15 10:57:38 +00:00
Mickaël Rémond 295da9cf02 * src/ejabberd_s2s.erl: API improvement: Added s2s_connect_hook (EJAB-566).
SVN Revision: 1232
2008-03-15 09:35:33 +00:00
Badlop 04aec272db * src/odbc/ejabberd_odbc.erl: Start ODBC explicitely because
Erlang R12 doesn't start automatically like in R11 and
older (thanks to Sergei Golovan)(EJAB-541)

SVN Revision: 1231
2008-03-13 14:34:47 +00:00
Badlop 7c377783fa * src/ejabberd.hrl: Removed unused ejabberd_debug and
PRIVACY_SUPPORT. Reordered the remaining options

SVN Revision: 1230
2008-03-13 14:13:29 +00:00
Badlop 40442b9c99 * doc/guide.tex: Describe option Matches in mod_vcard_ldap (thanks
to Evgeniy Khramtsov)(EJAB-530).  Fix typo in the description of
ldap_server option.
* doc/guide.html: Likewise

SVN Revision: 1229
2008-03-13 10:59:57 +00:00
Badlop d2eb00d814 * src/mod_echo.erl: Small change to avoid a compilation warning of
unused function

SVN Revision: 1228
2008-03-12 23:05:49 +00:00
Badlop 9ae1282854 * src/web/ejabberd_web_admin.erl (term_to_string): Show Erlang
terms in one line in Erlang R12 (EJAB-503)

SVN Revision: 1227
2008-03-12 22:29:53 +00:00
Badlop 07454d8f1a * src/ejabberd_s2s_in.erl (get_cert_domains): When compiling with
Erlang R12, replace the calls to deprecated module PKIX1Explicit88
with OTP-PKIX (EJAB-556)

SVN Revision: 1226
2008-03-11 14:25:35 +00:00
Badlop 78ce676e81 * src/ejabberd_update.erl: Fix crash when browsing the Update
page in Erlang R12 (EJAB-552)

SVN Revision: 1225
2008-03-10 11:59:53 +00:00
Alexey Shchepin 0f9102e4d1 SVN Revision: 1224 2008-03-09 23:02:28 +00:00
Alexey Shchepin 5cb8f4826c * src/web/ejabberd_http_poll.erl: Fixed HTTP headers when a
requested session doesn't exist

SVN Revision: 1223
2008-03-09 21:28:42 +00:00
Badlop ee339aebb8 * src/mod_proxy65/mod_proxy65_service.erl: Implement alternative
to the deprecated function inet:ip_to_bytes (thanks to Evgeniy
Khramtsov)(EJAB-542)

SVN Revision: 1222
2008-03-09 10:09:38 +00:00
Christophe Romain 53e804575f add missing ~p to error message
SVN Revision: 1221
2008-03-07 14:56:37 +00:00
Mickaël Rémond 0f4ee703c6 * src/eldap/eldap_pool.erl: Improved logging
SVN Revision: 1220
2008-03-07 14:49:06 +00:00
Badlop 735b34e7b7 * doc/guide.tex: Improve documentation of host_config
add (EJAB-544)
* doc/guide.html: Likewise
* src/ejabberd.cfg.example: Likewise
* src/ejabberd_config.erl: Likewise

SVN Revision: 1219
2008-03-04 10:36:57 +00:00
Badlop a65273690d * doc/guide.tex: mod_announce recommends, but doesn't require
mod_adhoc (thanks to Anastasia Gornostaeva)
* doc/guide.html: Likewise
* src/ejabberd.cfg.example: Likewise

SVN Revision: 1218
2008-03-04 09:07:43 +00:00
Alexey Shchepin 76245f0fcf * src/tls/tls.erl: recv_data/2 doesn't throw exceptions now
* src/ejabberd_zlib/ejabberd_zlib.erl: Likewise

SVN Revision: 1217
2008-03-03 11:55:19 +00:00
Mickaël Rémond 993ffe9096 * src/ejabberd_check.erl: Fixed missing clause (EJAB-533).
SVN Revision: 1215
2008-02-29 12:21:15 +00:00
Alexey Shchepin 8283a9faf3 * src/mod_roster.erl: Fixed "from" attribute in roster pushes
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 1213
2008-02-28 22:10:55 +00:00
Badlop 22a5bce9de * src/ejabberd_app.erl (prep_stop): Stop modules when stopping
ejabberd (EJAB-536)
* src/mod_caps.erl (stop): Probably not needed to stop supervisor
child (EJAB-536)
* src/mod_muc/mod_muc.erl (room_destroyed): Catch message
sending (EJAB-536)
* src/mod_muc/mod_muc_room.erl (init): Ensure rooms are called
when the process dies due to a linked die (EJAB-536)

SVN Revision: 1212
2008-02-28 00:30:23 +00:00
Mickaël Rémond 868182d1c8 * src/ejabberd_check.erl: Separate config loading from configuration sanity checks (EJAB-533)
* src/src/ejabberd_app.erl: Likewise
* src/ejabberd_app.erl: Likewise

SVN Revision: 1210
2008-02-27 20:15:25 +00:00
Badlop f4f3d06120 * src/msgs/it.msg: Updated (thanks to Smart2128)
SVN Revision: 1209
2008-02-26 08:59:09 +00:00
Badlop 2ef35b89ca * doc/release_notes_2.0.0.txt: Small fixes and update date
SVN Revision: 1207
2008-02-21 09:54:19 +00:00
Badlop de433ef4c1 * README: Updated to match the content of the ejabberd Guide
SVN Revision: 1206
2008-02-20 19:07:19 +00:00
Badlop ac99c7fc7d * doc/release_notes_2.0.0.txt: Updated version number and date
SVN Revision: 1205
2008-02-20 16:08:13 +00:00
Badlop 0316caafd3 * doc/guide.tex: Mentioned the problems about Windows service
* doc/guide.html: Likewise

SVN Revision: 1204
2008-02-20 16:05:26 +00:00
Badlop c3a5b5b0fe * src/msgs/ru.msg: Updated (thanks to Konstantin Khomoutov)
* src/msgs/zh.msg: Updated (thanks to Mike Wang and Zhan Caibao)

SVN Revision: 1202
2008-02-20 15:48:48 +00:00
Badlop 4bac690f90 * src/msgs/ca.msg: Updated (thanks to Vicent Alberola Canet)
* src/msgs/cs.msg: Updated (thanks to Lukas Polivka)
* src/msgs/de.msg: Updated (thanks to Cord Beermann and Nikolaus
Polak)
* src/msgs/eo.msg: Updated (thanks to Andreas van Cranenburgh)
* src/msgs/es.msg: Updated
* src/msgs/fr.msg: Updated (thanks to Christophe Romain)
* src/msgs/gl.msg: Updated (thanks to Carlos E. Lopez)
* src/msgs/nl.msg: Updated (thanks to Andreas van Cranenburgh)
* src/msgs/no.msg: Updated (thanks to Stian B. Barmen)
* src/msgs/pt-br.msg: Updated (thanks to Otavio Fernandes)
* src/msgs/uk.msg: Updated (thanks to Stoune and Ruslan Rakhmanin)

SVN Revision: 1201
2008-02-19 19:15:28 +00:00
Christophe Romain 9466b1a21f add pgsql driver monitoring
SVN Revision: 1200
2008-02-19 17:06:49 +00:00
Mickaël Rémond 6e3ac3a5a0 * src/ejabberd_config.erl: dirty_get_registered_users now correctly returns all users for all vhosts no matter which back-end is used (EJAB-527)
* src/ejabberd_auth_odbc.erl: Likewise
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth.erl: Likewise
* src/ejabberd_auth_external.erl: Likewise
* src/ejabberd_auth_ldap.erl: Likewise

SVN Revision: 1198
2008-02-19 13:49:29 +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
Badlop a021731c09 * doc/release_notes_2.0.0.txt: Describe in the Release Notes the
upgrade instructions (EJAB-522)

SVN Revision: 1195
2008-02-15 19:18:36 +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 def7b0ff90 * src/mod_muc/mod_muc_room.erl: Allow unmoderated rooms (EJAB-437)
* src/msgs/*: Recover old translations to several languages from
ejabberd 1.1.4

SVN Revision: 1191
2008-02-14 11:25:39 +00:00
Alexey Shchepin aa22e20e0a * src/cyrsasl_digest.erl: Unquote backslash in DIGEST-MD5 quoted
strings (EJAB-304)

SVN Revision: 1190
2008-02-14 05:23:16 +00:00
Alexey Shchepin 08a4392fa9 * src/mod_roster.erl: Removed the ancient Psi roster workaround
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 1189
2008-02-14 04:51:04 +00:00
Jérôme Sautret 0eb8aafc0d * odbc_queries: fix list_users queries with limit/offset.
SVN Revision: 1188
2008-02-12 13:23:35 +00:00
Jérôme Sautret 1309f26f06 * odbc_queries: fix list_users query with prefix.
SVN Revision: 1187
2008-02-12 12:49:41 +00:00
Badlop def8f81f20 * src/web/ejabberd_web_admin.erl: Fixed native support for all the
ACL types (EJAB-253)

SVN Revision: 1186
2008-02-12 01:16:11 +00:00
Badlop 866e5c2d82 * src/acl.erl: Normalize ACL before adding to the configuration
tables (EJAB-521)

SVN Revision: 1185
2008-02-12 01:04:47 +00:00
Mickaël Rémond edad54d961 * Changelog: Forgotten commit.
SVN Revision: 1184
2008-02-11 20:29:54 +00:00
Mickaël Rémond 0ae7f15ce7 * src/ejabberd_auth.erl: Do not allow empty password at creation. On authent, check in all cases that password is not empty.
* src/ejabberd_auth_odbc.erl: Likewise
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_external.erl: Likewise

SVN Revision: 1183
2008-02-11 18:19:42 +00:00
Mickaël Rémond 4b5632a260 * src/ejabberd_receiver.erl: Avoid crash to appear in log, when trying to close a stream with an undefined state.
SVN Revision: 1182
2008-02-11 15:36:56 +00:00
Christophe Romain 7f6cdc6cfe use if event instead of x when xmlns is pubsub#event (EJAB-518)
SVN Revision: 1181
2008-02-11 15:21:24 +00:00
Badlop 8104eac23a * src/mod_muc/mod_muc_room.erl: Bugfix: local message stanza may
not have an attribute From (EJAB-515)

SVN Revision: 1180
2008-02-11 12:15:34 +00:00
Badlop 116966ce44 * src/mod_muc/mod_muc_room.erl: Include the error condition in the
presence status when kicking a participant due to an error
stanza (EJAB-496)

SVN Revision: 1179
2008-02-09 10:38:47 +00:00
Badlop 8ff5599d3a * src/ejabberd.cfg.example: Document options to SQL keep alive
interval and pool size (EJAB-206)
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1178
2008-02-08 18:28:36 +00:00
Mickaël Rémond 2fa599c40f * src/mod_pubsub/node.template: Fixed typo
SVN Revision: 1177
2008-02-07 08:07:20 +00:00
Badlop 0beb1c8116 * src/mod_muc/mod_muc_room.erl: Support for decline of invitation
to MUC room (EJAB-515)

SVN Revision: 1175
2008-02-06 20:30:58 +00:00
Mickaël Rémond ac204f0849 * src/mod_pubsub/node_buddy.erl: Fixed typo
* src/mod_pubsub/node_club.erl: Likewise
* src/mod_pubsub/node_dispatch.erl: Likewise
* src/mod_pubsub/node_pep.erl: Likewise
* src/mod_pubsub/node_private.erl: Likewise

SVN Revision: 1174
2008-02-06 18:19:25 +00:00
Mickaël Rémond 4e096f1590 * src/mod_pubsub/gen_pubsub_node.erl: API improvement: Added a way to generate custom item name
* src/mod_pubsub/node_dispatch.erl: Likewise
* src/mod_pubsub/node_buddy.erl: Likewise
* src/mod_pubsub/node_private.erl: Likewise
* src/mod_pubsub/node_club.erl: Likewise
* src/mod_pubsub/node_public.erl: Likewise
* src/mod_pubsub/node_default.erl: Likewise
* src/mod_pubsub/node_pep.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Small API improvements and refactoring

SVN Revision: 1173
2008-02-06 18:04:23 +00:00
Badlop ba419eae59 * src/ejabberd.hrl: Updated version to 2.1.0-alpha
* doc/dev.html: Likewise
* doc/features.html: Likewise
* doc/guide.html: Likewise
* doc/version.tex: Likewise

SVN Revision: 1172
2008-02-04 16:44:42 +00:00
Alexey Shchepin 24a7d86577 * src/mod_muc/mod_muc_room.erl: Append "(n/a)" to disco room
descriptions when a number of occupants is not available

SVN Revision: 1171
2008-02-03 23:17:39 +00:00
Mickaël Rémond 65981598ed * src/mod_pubsub/nodetree_virtual.erl: Fixed error report at startup.
SVN Revision: 1169
2008-02-02 14:24:01 +00:00
Mickaël Rémond fff45aca21 * src/mod_pubsub/mod_pubsub.erl: Added the from field in the
get_subnodes pubsub plugin API function. This is usefull to write
plugins to generate the pubsub hierarchy dynamically, based on who
is doing the browsing request.
* src/mod_pubsub/gen_pubsub_nodetree.erl: Likewise
* src/mod_pubsub/nodetree_default.erl: Likewise
* src/mod_pubsub/nodetree_virtual.erl: Likewise

SVN Revision: 1168
2008-02-02 14:15:37 +00:00
Badlop fb6c0d4771 * doc/guide.tex: Removed the option served_hosts in mod_pubsub
because it does not work correctly yet (EJAB-504)
* doc/guide.html: Likewise

SVN Revision: 1167
2008-01-30 17:51:09 +00:00
Badlop b6ff597740 * src/mod_echo.erl: Put in comments the call to the educational
function do_client_version

SVN Revision: 1165
2008-01-30 15:52:23 +00:00
Badlop 45b01994e2 * src/mod_muc/mod_muc_room.erl: MUC kicks a participant if sends a
private message with type=error (EJAB-496). Updated.

SVN Revision: 1164
2008-01-29 18:37:45 +00:00
Badlop cdc1698c8b * src/mod_muc/mod_muc_room.erl: MUC kicks a participant if sends a
private message with type=error (EJAB-496)

SVN Revision: 1163
2008-01-29 14:49:08 +00:00
Badlop a34feb9b1a * doc/introduction.tex: Updated list of languages
* doc/release_notes_2.0.0.txt: Likewise

SVN Revision: 1162
2008-01-25 15:28:30 +00:00
Badlop cca5d7fcbe * src/msgs/eo.msg: New Esperanto translation (thanks to Andreas
van Cranenburgh)

* src/msgs/no.msg: New Norwegian translation (thanks to Stian
B. Barmen)

* doc/Makefile: Fixed small problem with contributed_modules.tex

SVN Revision: 1160
2008-01-25 10:23:12 +00:00
Christophe Romain c8e580987d pubsub dirty_sync typo fix on node configuration transaction
SVN Revision: 1159
2008-01-25 10:17:59 +00:00
Christophe Romain 58c491ade3 pubsub configuration patch (EJAB-508) and (EJAB-509)
SVN Revision: 1158
2008-01-25 09:24:10 +00:00
Badlop f361633f36 * doc/guide.tex: Updated the names of log files.
* doc/guide.html: Likewise

* src/mod_muc/mod_muc_room.erl: Added log messages for room
destroy

* src/mod_caps.erl: Small beautify of log error messages

SVN Revision: 1155
2008-01-16 10:08:17 +00:00
Badlop 864d2056a7 * doc/guide.tex: Improved the documentation of Binary
installer. Updated the requirements, specifically: Erlang R10B-9
is required as minimum, and R12 is not yet supported. Added
section Upgrading ejabberd. Improved documentation about Erlang
runtime system environment variables and command-line parameters.
* doc/guide.html: Likewise

* doc/release_notes_2.0.0.txt: Updated to RC1
* doc/version.tex: Likewise
* src/ejabberd.hrl: Likewise

* doc/introduction.tex: Updated to 22 languages

* doc/Makefile: Ensure that Bash is used

SVN Revision: 1154
2008-01-15 17:53:40 +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
Badlop 983e51d5fb Merge changesets 1150 and 1151 into branch ejabberd-2.0.x:
* src/Makefile.in: Allow compilation with Erlang R12 (EJAB-446)
(thanks to Sergei Golovan and Maxim Treskin). Erlang R12 version is
not supported and not recommended for production servers.
* src/aclocal.m4: Likewise
* src/configure.ac: Likewise
* src/configure: Likewise
* src/ejabberd_s2s_in.erl: Likewise

Small fixes in trunk/ChangeLog.

SVN Revision: 1152
2008-01-15 16:09:07 +00:00
Jérôme Sautret 1b030db9f2 * ChangeLog: Update for Erlang R12 compilation (EJAB-446).
SVN Revision: 1151
2008-01-15 11:27:55 +00:00
Jérôme Sautret 38976270b4 * src/Makefile.in: Allow compilation with Erlang R12 (EJAB-446).
* src/aclocal.m4: Likewise
* src/configure.ac: Likewise
* src/configure: Likewise
* src/ejabberd_s2s_in.erl: Likewise

SVN Revision: 1150
2008-01-15 11:11:27 +00:00
Badlop 25e6bddf29 * src/ejabberdctl.template: Instead of using the Erlang kernel
variable 'inetrc', use the ERL_INETRC environment variable that is
available since Erlang/OTP R10B-5.

SVN Revision: 1149
2008-01-13 22:46:00 +00:00
Christophe Romain aa685c7794 set_subscription fix (EJAB-494)
SVN Revision: 1148
2008-01-12 19:47:19 +00:00
Christophe Romain b106f894e4 don't ask capabilities to MUC room participants
SVN Revision: 1147
2008-01-11 13:57:29 +00:00
Christophe Romain 20c27ea9d9 EJAB-491 fix
SVN Revision: 1145
2008-01-11 01:39:10 +00:00
Christophe Romain 04eb1c6641 Force PEP parent node to be []
SVN Revision: 1144
2008-01-10 17:38:24 +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
Badlop 7672515e76 * src/mod_muc/mod_muc_room.erl: MUC kicks a participant if sends a
private message with type=error (EJAB-496)

SVN Revision: 1142
2008-01-09 16:01:16 +00:00
Badlop 635978b137 * src/ejabberdctl.template: Removed the option ERL_FULLSWEEP_AFTER
because it is almost useless regarding ejabberd's performance.
* src/ejabberdctl.cfg.example: Likewise

SVN Revision: 1140
2008-01-08 16:11:58 +00:00
Christophe Romain 74d52708b0 fix version.tex generation bug
SVN Revision: 1139
2008-01-08 13:29:50 +00:00
Badlop 1a1f9d1488 * src/web/ejabberd_web_admin.erl: Uniformize the name of
ejabberd's web admin to: 'Web Admin' (EjAB-472)
* doc/guide.tex: Likewise
* doc/introduction.tex: Likewise

* src/web/ejabberd_web_admin.erl: Uniformize ejabberd name in the
text using the Latex command

SVN Revision: 1137
2008-01-01 18:20:57 +00:00
Badlop c2e12d716b * src/mod_muc/mod_muc_room.erl: Resend 'continue' elements in muc
room invitations (EJAB-490)

SVN Revision: 1135
2008-01-01 17:06:26 +00:00
Badlop b23d82bc1e * src/ejabberdctl.template: Create logs_dir if doesn't exist. New
parameters --config, --ctl-config, --logs, --spool. Crash dump
renamed to erl_crash_DATETIME.dump.

* src/ejabberdctl.template: Backport improvements from binary
installer (EJAB-488): options are simple values; enable Kernel
Poll by default, set SMP to auto, set max ports to 32000, max
processes to 250000.
* src/ejabberdctl.cfg.example: Likewise

* src/ejabberd.inetrc: Renamed ejabberd.inetrc to inetrc
* src/inetrc: Likewise
* src/Makefile.in: Likewise
* doc/guide.tex: Likewise

SVN Revision: 1133
2008-01-01 10:53:05 +00:00
Badlop c7e9fe1059 * src/msgs/ca.msg: Updated (thanks to Vicent Alberola Canet)
SVN Revision: 1131
2007-12-31 10:26:01 +00:00
Badlop 86438f1693 * src/ejabberd_s2s_out.erl: Fixed behavior when outgoing_s2s_port
option is not defined (EJAB-487)

SVN Revision: 1130
2007-12-29 15:23:53 +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
Badlop f3aa8a03d3 * src/mod_vcard_ldap.erl: Fix some field names (EJAB-483)
SVN Revision: 1127
2007-12-27 16:40:03 +00:00
Badlop 4562a79b69 * src/web/ejabberd_web_admin.erl: Translate menu items of webadmin
hooks in each module (EJAB-485)
* src/mod_shared_roster.erl: Likewise

SVN Revision: 1125
2007-12-26 14:53:37 +00:00
Badlop 264ea1c25f * src/web/ejabberd_web_admin.erl: max_user_sessions access rule
contains an integer, but webadmin always expects atoms (EJAB-482)

SVN Revision: 1123
2007-12-26 12:21:52 +00:00
Badlop e14d70529c * src/mod_configure.erl: Bugfix, update to match changes in
mod_announce SVN r1099

SVN Revision: 1121
2007-12-25 00:27:10 +00:00
Mickaël Rémond 24d2fc10f0 * doc/release_notes_2.0.0.txt: minor fix.
SVN Revision: 1120
2007-12-24 15:14:37 +00:00
Mickaël Rémond 29095be0d4 * doc/release_notes_2.0.0.txt: Small fix.
SVN Revision: 1119
2007-12-24 15:01:00 +00:00
Mickaël Rémond 24f20c0dbb * doc/release_notes_2.0.0.txt: Small fixes.
SVN Revision: 1115
2007-12-24 14:09:55 +00:00
Mickaël Rémond 22f928122f * Applied copyright patch 3.
SVN Revision: 1113
2007-12-24 13:57:53 +00:00
Mickaël Rémond cd82cadd10 * applied copyright patch 2.
SVN Revision: 1112
2007-12-24 12:58:05 +00:00
Mickaël Rémond 281d2ca3d3 * Fixed typo.
SVN Revision: 1111
2007-12-24 12:25:56 +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 56194f742b pubsub: remove useless get_roster_info call
SVN Revision: 1109
2007-12-24 11:28:56 +00:00
Mickaël Rémond 8c4042848e * doc/release_notes_2.0.0.txt: Fix on number of supported languages.
SVN Revision: 1108
2007-12-24 10:58:31 +00:00
Mickaël Rémond 24665d630b * doc/release_notes_2.0.0.txt: ejabberd 2.0.0 beta 1 release notes.
SVN Revision: 1107
2007-12-24 10:26:55 +00:00
Mickaël Rémond 5afeed7399 * doc/release_notes_2.0.0.txt: Fixes and update.
SVN Revision: 1106
2007-12-24 10:26:53 +00:00
Badlop 977841188c * src/msgs/vi.msg: New Vietnamese translation (thanks to EQHO
Communications)

* src/msgs/th.msg: New Thai translation (thanks to EQHO
Communications)

* src/msgs/gl.msg: Updated (thanks to Carlos E. Lopez)

SVN Revision: 1105
2007-12-23 22:08:12 +00:00
Badlop afdc9b9527 * src/mod_muc/mod_muc_room.erl: Log room creation and
destruction. Ensure JID of owners of MUC room are user, not
server (EJAB-435)

SVN Revision: 1104
2007-12-23 12:28:44 +00:00
Badlop 2d634e1b4f * src/ejabberd.app: Update ejabberd.app: add new erlang
modules (EJAB-466)

SVN Revision: 1103
2007-12-22 19:51:55 +00:00
Badlop 818091390d * doc/introduction.tex: Small updates
* doc/guide.tex: Small fixes in Install. Added http_bind to
Listening Ports.

SVN Revision: 1102
2007-12-22 16:36:48 +00:00
Badlop 27063837ae * src/web/ejabberd_http.erl: Add 'http_bind' option for easy
configuration of HTTP-Binding

SVN Revision: 1101
2007-12-22 14:23:37 +00:00
Badlop ccbc4b0c04 * src/mod_announce.erl: When editing MOTD, display current value (EJAB-475)
SVN Revision: 1100
2007-12-22 13:58:19 +00:00
Badlop 61295e9c1b * src/mod_announce.erl: Fixed unnoticeable bug related to Node
matching. Renamed some nonstandard node names according to
XEP-0133. Small reordering of clauses.

SVN Revision: 1099
2007-12-22 12:26:17 +00:00
Christophe Romain 1f8c32cbff debug log fix
SVN Revision: 1098
2007-12-22 01:14:56 +00:00
Christophe Romain d74c527101 EJAB-469 bugfix
SVN Revision: 1097
2007-12-22 01:13:06 +00:00
Christophe Romain 02eaf9eaec several pubsub/pep bugfix
SVN Revision: 1096
2007-12-22 00:04:05 +00:00
Badlop 43fc8b3329 * src/mod_caps.erl: Bugfix in timeout checking. Check for timeout
when an error response is received, and also before querying

SVN Revision: 1095
2007-12-21 23:36:44 +00:00
Badlop d1f902768c * src/ejabberd_ctl.erl: Added new command: mnesia (thanks to
Tsukasa Hamano)

SVN Revision: 1094
2007-12-21 21:50:22 +00:00
Mickaël Rémond 5ee03c1514 * doc/release_nodes_2.0.0.txt: release notes draft (still a work in progress).
SVN Revision: 1093
2007-12-21 18:15:45 +00:00
Badlop 08b3bd16c8 Small bugfix.
SVN Revision: 1092
2007-12-21 18:09:18 +00:00
Christophe Romain 5f383893b7 fix ejabberd_modules includes
SVN Revision: 1091
2007-12-21 14:26:17 +00:00
Mickaël Rémond cf37671ef4 * src/msgs/fr.msg: Updated French translation (EJAB-295)
SVN Revision: 1090
2007-12-21 14:22:03 +00:00
Christophe Romain e7fda4a23f pubsub disco#items bugfix (EJAB-465)
SVN Revision: 1089
2007-12-21 00:08:59 +00:00
Badlop d58662f706 * src/msgs/uk.msg: Updated (thanks to Ruslan Rakhmanin)
* src/msgs/de.msg: Updated (thanks to Nikolaus Polak and Cord
Beermann)

* contrib/extract_translations/prepare-translation.sh: Small fix

SVN Revision: 1088
2007-12-20 23:25:22 +00:00
Badlop 36f9af523c * src/mod_caps.erl: Don't include the Node attribute from C
element in the disco#info query

SVN Revision: 1087
2007-12-20 20:02:04 +00:00
Christophe Romain 1ba15b207c User count performance improvements
SVN Revision: 1086
2007-12-20 17:12:45 +00:00
Christophe Romain 583f2fd19f PEP notification bugfix
SVN Revision: 1085
2007-12-20 16:38:38 +00:00
Christophe Romain 027adc6c38 Explain how to launch installer and improve ejabberdctl usage example (EJAB-420)
SVN Revision: 1084
2007-12-20 09:29:30 +00:00
Badlop 0cef0371c5 * src/msgs/zh.msg: Small update (thanks to Shelley Shyan)
* src/msgs/ru.msg: Small update (thanks to Konstantin Khomoutov)

SVN Revision: 1083
2007-12-20 09:06:28 +00:00
Badlop 9e799047c0 Fixed small mistake.
SVN Revision: 1082
2007-12-19 23:24:53 +00:00
Badlop 4646c1e015 * src/msgs/pl.msg: Updated (thanks to Andrzej Smyk)(EJAB-463)
* src/msgs/de.msg: Updated (thanks to Cord Beermann)

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

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

* src/web/ejabberd_web_admin.erl: No need to translate copyright

SVN Revision: 1081
2007-12-19 18:26:32 +00:00
Badlop b07b2fe159 * src/mod_muc/mod_muc_log.erl: Add handling of kicks 321, 322, 332
SVN Revision: 1080
2007-12-18 19:19:24 +00:00
Badlop 073e9979c4 * doc/guide.tex: Document mod_privacy_odbc
SVN Revision: 1079
2007-12-18 18:11:10 +00:00
Badlop 2cfa983325 * doc/Makefile: Support for conditional inclusion of documentation
from contributed modules
* doc/guide.tex: Likewise

SVN Revision: 1078
2007-12-18 18:04:12 +00:00
Christophe Romain c0b2c5744f Purge related pep nodes at remove_user
SVN Revision: 1077
2007-12-18 14:45:26 +00:00
Badlop 80b7abd8c8 * src/ejabberd_zlib/Makefile.win32: Compile
all erl files found in the directory, so it isn't needed to provide
an explicit list of target files
* src/eldap/Makefile.win32: Likewise
* src/mod_irc/Makefile.win32: Likewise
* src/mod_muc/Makefile.win32: Likewise
* src/mod_proxy65/Makefile.win32: Likewise
* src/mod_pubsub/Makefile.win32: Likewise
* src/odbc/Makefile.win32: Likewise
* src/stringprep/Makefile.win32: Likewise
* src/tls/Makefile.win32: Likewise
* src/web/Makefile.win32: Likewise

SVN Revision: 1076
2007-12-17 22:23:56 +00:00
Badlop 60f8b0772e * src/ejabberd_zlib/Makefile.in: Compile all erl files found in
the directory, so it isn't needed to provide an explicit list of
target files
* src/eldap/Makefile.in: Likewise
* src/mod_irc/Makefile.in: Likewise
* src/mod_muc/Makefile.in: Likewise
* src/mod_proxy65/Makefile.in: Likewise
* src/mod_pubsub/Makefile.in: Likewise
* src/odbc/Makefile.in: Likewise
* src/pam/Makefile.in: Likewise
* src/stringprep/Makefile.in: Likewise
* src/tls/Makefile.in: Likewise
* src/web/Makefile.in: Likewise

SVN Revision: 1075
2007-12-17 18:59:51 +00:00
Christophe Romain f114517bbc mssql specific issue bugfix
SVN Revision: 1074
2007-12-17 14:10:26 +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 2b91ebcc85 * src/mod_irc/iconv.erl: Changed order of handle_info
clause (EJAB-290)
* src/stringprep/stringprep.erl: Likesise

* src/eldap/eldap.erl: Removed handle_sync_event clause because it
is never called (EJAB-290)

SVN Revision: 1072
2007-12-15 13:01:32 +00:00
Badlop 090fceebc2 * src/mod_irc/mod_irc.erl: No need to translate copyright notice
* src/mod_muc/mod_muc.erl: Likewise
* src/mod_proxy65/mod_proxy65_service.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/msgs/*.msg: Likewise

* contrib/extract_translations/prepare-translation.sh: Bugfix

SVN Revision: 1071
2007-12-15 12:02:00 +00:00
Badlop 3174ea98f6 * src/msgs/*: Unified file format: First line is SVN Id
tag. Second is Language name. Next lines are authors, adding the
new ones on top. Each string must be in a single line (to
facilitate the automatic removal of unused strings). Last four
lines report file format for Emacs and Vim.

* contrib/extract_translations/prepare-translation.sh: New
features: extract all translations, include explanation for
translators in the file, remove unused strings from file, include
unused strings in a section for reference, provide information
about current translation and number of missing strings, compress
the files to a zip

* contrib/extract_translations/extract_translations.erl: Reverted
to the original version

SVN Revision: 1070
2007-12-14 21:28:29 +00:00
Alexey Shchepin b14c88aaaf * src/ejabberd_s2s_out.erl: Bugfix
SVN Revision: 1069
2007-12-14 09:12:14 +00:00
Christophe Romain 348427fab0 pubsub presence handler bugfix
SVN Revision: 1068
2007-12-12 16:16:00 +00:00
Badlop ca894f8ad8 * src/msgs/it.msg: Updated (thanks to Luca Brivio)
SVN Revision: 1067
2007-12-12 09:41:33 +00:00
Christophe Romain 4b65154dd3 first patch to mssql quety, still one patch to be done
SVN Revision: 1066
2007-12-11 17:43:49 +00:00
Christophe Romain f3322710c0 pubsub notification broadcast bugfix
SVN Revision: 1065
2007-12-11 16:19:17 +00:00
Badlop 4ac9c8dfc5 * src/msgs/tr.msg: New translation (thanks to Doruk Fisek)
* src/msgs/zh.msg: Updated (thanks to Shelley Shyan)

SVN Revision: 1064
2007-12-11 09:52:09 +00:00
Badlop ebb33ddf74 * src/msgs/ja.msg: Updated (thanks to Tsukasa Hamano)
SVN Revision: 1063
2007-12-10 22:53:50 +00:00
Badlop 6586293142 * doc/guide.tex: Small improvement in mod_shared_roster
SVN Revision: 1062
2007-12-10 16:00:31 +00:00
Badlop a4449fe8d0 * src/mod_irc/mod_irc.erl: Bugfix in ACL check (thanks to Sergei
Golovan)

SVN Revision: 1061
2007-12-10 14:44:43 +00:00
Christophe Romain bf239fac9d auto-create pe node bugfix
SVN Revision: 1060
2007-12-10 14:09:31 +00:00
Christophe Romain b9286778d4 return back to good location for database upgrade call
SVN Revision: 1059
2007-12-10 09:56:15 +00:00
Christophe Romain d4ff7eeb4a pubsub database upgrade bugfix
SVN Revision: 1058
2007-12-10 09:33:30 +00:00
Mickaël Rémond 4ab25a3c0c * src/web/ejabberd_http.erl: Fixed URL decoding code (EJAB-450)
SVN Revision: 1057
2007-12-09 10:45:53 +00:00
Mickaël Rémond 5d0f284769 * src/msg/fr.msg: Added missing space.
SVN Revision: 1056
2007-12-09 10:35:13 +00:00
Badlop fbddeb60a0 * src/msgs/ru.msg: Updated (thanks to Konstantin Khomoutov)
SVN Revision: 1055
2007-12-09 00:36:26 +00:00
Badlop 941a5bf436 * src/msgs/ja.msg: New translation (thanks to Tsukasa Hamano)
* src/msgs/nl.msg: Updated (thanks to Andreas from Unstable.nl)

SVN Revision: 1054
2007-12-08 20:00:45 +00:00
Badlop 6b8113c56f * src/ejabberd_config.erl: Report human-readable message when
Mnesia spool files are not readable.

SVN Revision: 1053
2007-12-08 18:39:23 +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
Christophe Romain 23b91e953a pubsub disco_sm_items bugfix
SVN Revision: 1051
2007-12-08 15:24:38 +00:00
Alexey Shchepin d788bd1a27 * src/ejabberd_sm.erl: Bugfix
SVN Revision: 1050
2007-12-07 20:57:44 +00:00
Badlop 791640fc98 * src/Makefile.in: Fix compilation warnings: Part 5: To fix a
warning about behaviour undefined, the erlang module that
implements the behaviour must be compiled before the module that
uses such behaviour (EJAB-290)

SVN Revision: 1049
2007-12-07 08:44:22 +00:00
Badlop dd706eea94 * src/eldap/eldap.erl: Fix compilation warnings: Part 4 (EJAB-290)
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 1048
2007-12-07 01:40:24 +00:00
Badlop 95c69b0251 * src/mod_irc/iconv.erl: Fix compilation warnings: 3 (EJAB-290)
* src/mod_irc/mod_irc.erl: Likewise
* src/mod_irc/mod_irc_connection.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/stringprep/stringprep.erl: Likewise
* src/web/ejabberd_http.erl: Likewise
* src/web/ejabberd_http_poll.erl: Likewise

SVN Revision: 1047
2007-12-07 00:48:11 +00:00
Badlop b7c0a89a79 * src/mod_caps.erl: Fix compilation warnings: Part 2 (EJAB-290)
* src/mod_configure.erl: 
* src/mod_configure2.erl: 
* src/mod_offline_odbc.erl: 
* src/mod_shared_roster.erl: 
* src/mod_stats.erl: 
* src/mod_version.erl:

SVN Revision: 1046
2007-12-07 00:09:48 +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
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
Badlop e79aa93d88 * src/ejabberdctl.cfg.example: Explain that each connection uses
two or three ports (thanks to Max Loparyev)

SVN Revision: 1043
2007-12-06 21:42:47 +00:00
Badlop dfa74082f8 * src/configure: Regenerated
* doc/dev.html: Likewise
* doc/features.html: Likewise
* doc/guide.html: Likewise
* doc/version.tex: Likewise

* doc/introduction.tex: Updated number of translated languages

SVN Revision: 1042
2007-12-06 19:47:49 +00:00
Badlop 2e732b8b23 * src/web/ejabberd_web_admin.erl: Support more native acl_type on
web interface (EJAB-253)

SVN Revision: 1041
2007-12-06 18:54:18 +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
Badlop 4049906d5b * src/Makefile.in: Allow compilation with HiPE, disabled by
default, undocumented and unrecommended because it is experimental
and doesn't seem to provide meaningful gains currently (thanks to
Samuel Tardieu) (EJAB-412)
* src/configure.ac: Likewise

SVN Revision: 1039
2007-12-06 17:14:39 +00:00
Badlop 9527f3c9b1 * src/Makefile.in: Allow compilation with HiPE (EJAB-412)
* src/configure.ac: Likewise

SVN Revision: 1038
2007-12-06 17:09:35 +00:00
Badlop 10c6f3d991 * src/msgs/cs.msg: Updated (thanks to Lukáš Polívka alias
Spike411)

SVN Revision: 1037
2007-12-06 16:04:46 +00:00
Badlop fc8c92a233 * src/mod_muc/mod_muc.erl: Catch creation of table
muc_online_users: it may be already created by other mod_muc
instance

SVN Revision: 1036
2007-12-06 15:40:21 +00:00
Badlop b07f857fdc * doc/Makefile: Remove bashism (now really committed)
SVN Revision: 1035
2007-12-06 15:31:17 +00:00
Badlop 386f432977 * doc/Makefile: Remove bashism
* doc/guide.tex: Document how to change computer
hostname (EJAB-320)

SVN Revision: 1034
2007-12-06 15:26:53 +00:00
Badlop 4f78230dd8 * src/web/ejabberd_http.erl: Change loglevel for http
queries (EJAB-363)
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 1033
2007-12-06 11:24:57 +00:00
Badlop 6c0e4820d8 * doc/guide.tex: Add mod_caps and improve mod_pubsub documentation
* src/ejabberd.cfg.example: Added mod_caps enabled by default

SVN Revision: 1032
2007-12-06 11:13:29 +00:00
Christophe Romain c90579146c enable pep by default and add pubsub plugin examples
SVN Revision: 1031
2007-12-06 09:29:28 +00:00
Badlop 749a4305b4 * doc/guide.tex: Document the Debug Console (EJAB-395)
SVN Revision: 1030
2007-12-06 00:31:09 +00:00
Badlop 5f9de28973 * src/ejabberdctl.template: The parameter 'kernel inetrc' is used
even with -sname to guarantee the same behaviour that when using
-name (EJAB-317)

SVN Revision: 1029
2007-12-05 23:58:38 +00:00
Badlop 353a61ce1c * doc/guide.tex: Improvements in sections: Start, Creating Initial
Account, Module Overview, Managing an ejabberd server, and
Debugging

SVN Revision: 1028
2007-12-05 23:46:50 +00:00
Badlop 720b57a235 * doc/guide.tex: Added explanations about epmd, cookie and node
name (EJAB-251)

SVN Revision: 1027
2007-12-05 18:53:09 +00:00
Badlop 1e1f15aa61 * src/msgs/zh.msg: Updated (thanks to Shelley Shyan)
SVN Revision: 1026
2007-12-05 11:59:12 +00:00
Badlop 536a120c9d * src/mod_muc/mod_muc_room.erl: Rephrase the invitation sentence
to make more natural

SVN Revision: 1025
2007-12-05 09:09:09 +00:00
Badlop 3a80aa24a8 * src/msgs/es.msg: Updated
SVN Revision: 1024
2007-12-05 00:59:33 +00:00
Badlop 2208d78782 * src/ejabberd.hrl: Set more proper version number
SVN Revision: 1023
2007-12-05 00:31:30 +00:00
Badlop c30ddd3a07 * contrib/extract_translations/extract_translations.erl: Don't
report [] to be translated. Identify unusued strings.

SVN Revision: 1022
2007-12-04 23:41:52 +00:00
Badlop 2e1bb5f0e6 * .gitignore: Removed (EJAB-441)
* src/.cvsignore: Likewise

SVN Revision: 1021
2007-12-04 21:40:25 +00:00
Badlop d3a86d7660 * src/mod_pubsub/mod_pubsub.erl: Fixed URI.
SVN Revision: 1020
2007-12-04 21:35:41 +00:00
Badlop 1724ee2b15 * src/mod_pubsub/mod_pubsub.erl: Bugfix: don't report the Jabber
server as a pubsub service.

SVN Revision: 1019
2007-12-04 11:38:00 +00:00
Mickaël Rémond f8c4e86977 * ChangeLog: Fix conflict.
SVN Revision: 1018
2007-12-03 10:51:22 +00:00
Mickaël Rémond 1795c1a7bb * ChangeLog: Update.
SVN Revision: 1017
2007-12-03 10:51:06 +00:00
Mickaël Rémond 384f4c9196 * src/mod_muc.erl: Added option to limit the number of room a user is
allowed to connect to (EJAB-445).
* src/mod_muc_room.erl: Likewise.
* doc/guide.tex: Likewise.

SVN Revision: 1016
2007-12-03 10:50:36 +00:00
Mickaël Rémond abdbf55c87 * Temporary commit.
SVN Revision: 1015
2007-12-03 10:47:42 +00:00
Badlop 4ed283f009 * src/ejabberdctl.cfg.example: Bugfix in kernel poll. Added SMP
option. Reorganization of options
* src/ejabberdctl.template: Added SMP option

SVN Revision: 1014
2007-12-02 21:13:25 +00:00
Badlop bfb7583bb2 * src/Makefile.in: New options make uninstall and
uninstall-all (EJAB-293)

SVN Revision: 1013
2007-12-02 01:03:18 +00:00
Mickaël Rémond 796089b8bc * doc/*.html: Rebuild.
SVN Revision: 1012
2007-12-01 16:43:10 +00:00
Mickaël Rémond b84f85ba8a * doc/Makefile: echo seems to interpret \n and \v under MacOSX
Leopard. I fixed the problem but let me know if it breaks build
chain in other contexts.

SVN Revision: 1011
2007-12-01 16:43:04 +00:00
Mickaël Rémond 4f9e510cd5 * ChangeLog: Updated.
SVN Revision: 1010
2007-12-01 16:08:05 +00:00
Mickaël Rémond 71c7879b48 * doc/guide.tex: Updated Windows compilation instructions.
* src/configure.erl: Likewise.
* doc/ejabberd.hrl: Preparing ejabberd 2.0.0 beta release.
* doc/version.tex: Likewise.

SVN Revision: 1009
2007-12-01 16:06:24 +00:00
Mickaël Rémond 43e31b1bf0 * src/tls/Makefile.win32: Updated for latest Win32 OpenSSL library.
SVN Revision: 1008
2007-12-01 15:14:41 +00:00
Mickaël Rémond 7d68866c59 * src/odbc_queries.erl: Added a default define value so that we
can recompile the file manually with a simple erlc command (with the
default generic value).

SVN Revision: 1007
2007-12-01 14:25:31 +00:00
Alexey Shchepin c61d10f28a * src/mod_pubsub/Makefile.in: Removed mod_pubsub_old mentioning
* src/mod_pubsub/Makefile.win32: Likewise

SVN Revision: 1006
2007-12-01 14:11:46 +00:00
Alexey Shchepin 9b2e6bcaef * src/odbc/odbc_queries.erl: Reverted the previous patch because
it produces "redefining macro 'generic'" compilation error

SVN Revision: 1005
2007-12-01 05:20:45 +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
Mickaël Rémond e4cf286aa2 * src/odbc_queries.erl: Added a default define value so that we can
recompile the file manually with a simple erlc command.

SVN Revision: 1003
2007-11-30 18:06:26 +00:00
Badlop 02db5aa005 * src/mod_vcard.erl: Add type of x:data field to search
results (thanks to Robin Redeker) (EJAB-327)
* src/mod_vcard_ldap.erl: 
* src/mod_vcard_odbc.erl:

SVN Revision: 1002
2007-11-29 18:24:31 +00:00
Badlop dbdcadb6b3 * src/aclocal.m4: Fix autoconf caching for SSL libraries (thanks
to Michael Shields) (EJAB-439)

* src/configure.ac: Don't hardcode gcc and gcc options in
Makefiles (thanks to Etan Reisner) (EJAB-436)

SVN Revision: 1001
2007-11-29 17:22:34 +00:00
Badlop 44d65ff303 * src/configure.ac: Don't hardcode gcc and options (EJAB-436)
* src/Makefile.in: 
* src/ejabberd_zlib/Makefile.in: 
* src/eldap/Makefile.in: 
* src/mod_irc/Makefile.in: 
* src/mod_muc/Makefile.in: 
* src/mod_proxy65/Makefile.in: 
* src/mod_pubsub/Makefile.in: 
* src/odbc/Makefile.in: 
* src/pam/Makefile.in: 
* src/stringprep/Makefile.in: 
* src/tls/Makefile.in: 
* src/web/Makefile.in:

SVN Revision: 1000
2007-11-29 16:59:35 +00:00
Badlop 4257f0c790 * src/mod_muc/mod_muc_room.erl: Hide the option 'Make room
moderated' because it isn't implemented, and set the default value
of 'moderated' to true because that is the behaviour
implemented (EJAB-419)

SVN Revision: 999
2007-11-29 16:16:10 +00:00
Badlop 6697c6153f * doc/guide.tex: It should be made more clear that domain_certfile
works for both s2s and c2s connections (EJAB-212). Added another
example of listening ports.

SVN Revision: 998
2007-11-28 17:16:36 +00:00
Badlop 0996e569a6 * doc/guide.tex: Update URI of ejabberd official home page, URI
of ejabberd.jabber.ru, and copyright dates (EJAB-366)
* doc/introduction.tex: 
* src/ejabberd.hrl: 
* src/ejabberd_admin.erl: 
* src/mod_irc/mod_irc.erl: 
* src/mod_irc/mod_irc_connection.erl: 
* src/mod_muc/mod_muc.erl: 
* src/mod_muc/mod_muc_log.erl: 
* src/mod_proxy65/mod_proxy65_service.erl: 
* src/mod_pubsub/mod_pubsub.erl: 
* src/mod_vcard.erl: 
* src/mod_vcard_ldap.erl: 
* src/mod_vcard_odbc.erl: 
* src/msgs/*.msg: 
* src/web/ejabberd_web_admin.erl:

SVN Revision: 997
2007-11-27 23:35:26 +00:00
Badlop 69b425aeb7 * src/gen_mod.erl: Update in database the configuration changes in
modules (EJAB-330)

SVN Revision: 996
2007-11-27 22:30:51 +00:00
Badlop eb330ac0e0 * src/mod_configure.erl: The command get-user-lastlogin is now
compatible with both Mnesia and ODBC (EJAB-383)
* src/mod_last.erl: Likewise
* src/mod_last_odbc.erl: Likewise

SVN Revision: 995
2007-11-27 18:54:06 +00:00
Badlop 0ef2886b7e * doc/guide.tex: Document ejabberd_http's
request_handlers (EJAB-372). Fixed small Latex problems.
Sort options of listening sockets.

SVN Revision: 994
2007-11-27 18:40:09 +00:00
Badlop 003e7ae9a2 * doc/guide.tex: Document ejabberd_http's
request_handlers (EJAB-372). Fixed small Latex problems.

SVN Revision: 993
2007-11-27 18:22:47 +00:00
Alexey Shchepin 7ad9874dba * src/mod_announce.erl: Bugfix (thanks to Christophe Romain)
SVN Revision: 992
2007-11-27 15:18:45 +00:00
Badlop e000cbb034 * doc/guide.tex: Added clarification about LDAP default port
(thanks to Christophe Romain).

SVN Revision: 991
2007-11-27 14:45:30 +00:00
Badlop b4997bc20c * src/mod_vcard.erl: Ensure mod_vcard to respect FORM_TYPE registry (EJAB-328).
* src/mod_vcard_ldap.erl: Likewise.
* src/mod_vcard_odbc.erl: Likewise.
* doc/guide.tex: Updated documentation.

SVN Revision: 990
2007-11-27 14:06:44 +00:00
Badlop e7136065fc * src/mod_muc/mod_muc_room.erl: Don't show the room name as the room description (EJAB-382).
SVN Revision: 989
2007-11-27 08:09:47 +00:00
Badlop eb488b48fb * src/ejabberd.cfg.example: Added example configuration of databases.
SVN Revision: 988
2007-11-26 21:29:14 +00:00
Badlop f397741d20 * doc/guide.tex: Fixed several typos.
SVN Revision: 987
2007-11-26 19:54:30 +00:00
Badlop 2078c45656 * src/ejabberd_config.erl: Print error when the configuration
requires ODBC, MySQL or PostgreSQL libraries but are not 
installed (EJAB-210).

SVN Revision: 986
2007-11-26 19:52:09 +00:00
Badlop f6848603f9 * src/web/ejabberd_web_admin.erl: Added a favicon (EJAB-379).
SVN Revision: 985
2007-11-26 15:12:34 +00:00
Badlop 7f66b3dfb3 * src/msgs/wa.msg: New Walon translation (thanks to
Pablo Saratxaga) (EJAB-374).

SVN Revision: 984
2007-11-26 15:03:11 +00:00
Badlop 2bf29183f5 * doc/guide.tex: Describe how ejabberd treats ejabberd.cfg file
(EJAB-384).

SVN Revision: 983
2007-11-26 14:52:11 +00:00
Badlop 174c16a15f * src/ejabberd.cfg.example: Huge reorganization and grouping of options (EJAB-392).
SVN Revision: 982
2007-11-26 14:35:53 +00:00
Badlop 731e9cc0e5 * doc/guide.tex: Describe in mod_muc: nick register and service admin message (EJAB-400).
SVN Revision: 981
2007-11-26 10:23:37 +00:00
Badlop 9a03e5087e * src/mod_echo.erl: Example function that demonstrates how to receive XMPP packets using Erlang's message passing mechanism (EJAB-247).
SVN Revision: 980
2007-11-26 10:15:18 +00:00
Badlop 87f7630fa3 * src/ejabberdctl.template: Write erl_crash.dump in the log/ directory, with unique filename (EJAB-433).
SVN Revision: 979
2007-11-26 08:57:21 +00:00
Badlop 399604e55d * src/ejabberdctl.template: Removed bashisms (EJAB-399). Set environment variables instead of passing parameters when calling erl (EJAB-421).
* src/ejabberd_ctl.erl: Improvements in the help messages (EJAB-399).

* doc/guide.tex: Improvements in sections ejabberdctl, and Install from Source (EJAB-399).

SVN Revision: 978
2007-11-26 07:59:35 +00:00
Alexey Shchepin a487652fe9 * src/ejabberd_router.erl: Bugfix
SVN Revision: 977
2007-11-25 16:39:56 +00:00
Alexey Shchepin 950060cd3c * src/ejabberd_s2s_out.erl: Bugfix
SVN Revision: 976
2007-11-25 16:14:32 +00:00
Alexey Shchepin 65a7bb7d2a * src/ejabberd_sm.erl: Optimized check_max_sessions (thanks to
Christophe Romain)

SVN Revision: 975
2007-11-25 15:35:20 +00:00
Mickaël Rémond 1415fa4b1c * src/ejabberd_config.erl: Improved error message when ejabberd
config file is not found.

SVN Revision: 974
2007-11-22 13:46:54 +00:00
Mickaël Rémond f250ee9de6 * examples/extauth/check_pass_null.pl: Fixed external
authentication example script (EJAB-404)

SVN Revision: 973
2007-11-22 13:46:50 +00:00
Christophe Romain d7d34f87e7 Better count management and batch users retrieval internal database
SVN Revision: 972
2007-11-16 13:58:00 +00:00
Mickaël Rémond c7aeeb6e1f * Making sure SVN properties are correctly set.
SVN Revision: 971
2007-11-15 10:34:27 +00:00
Mickaël Rémond 2100ea63ca * Making sure SVN properties are correctly set.
SVN Revision: 970
2007-11-15 10:33:18 +00:00
Mickaël Rémond 76f7e643e3 * src/ejabberd_config.erl: Refactoring: Move internal data structure to an include file.
* src/ejabberd_config.hrl: Likewise.

SVN Revision: 969
2007-11-09 10:18:38 +00:00
Mickaël Rémond d6967f2745 * src/ejabberd_auth.erl: Better count management and batch users retrieval for relational database (Thanks to Massimiliano Mirra).
* src/ejabberd_auth_odbc.erl: Likewise.
* src/odbc/odbc_queries.erl: Likewise.

SVN Revision: 968
2007-11-03 17:35:23 +00:00
Mickaël Rémond a32e815bcb * ChangeLog: Fixed typo.
SVN Revision: 967
2007-11-02 14:59:06 +00:00
Mickaël Rémond 08cfab8a06 * src/web/ejabberd_http_poll.erl: Refactoring. Moved c2s limits acquisition to a separate module.
* src/ejabberd_c2s_config.erl: Likewise.

SVN Revision: 966
2007-11-02 14:45:06 +00:00
Mickaël Rémond 426f6072dc * src/web/ejabberd_http_poll.erl: Support for c2s ACL access,
max_stanza and shaper on http_bind connections (EJAB-243,
EJAB-415, EJAB-416)

SVN Revision: 965
2007-11-01 13:59:29 +00:00
Mickaël Rémond c3fc888c9f * ChangeLog: Added missing info about last commits in ChangeLog.
SVN Revision: 964
2007-11-01 13:49:50 +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
Christophe Romain 990514eef9 dev.tex: list typo fix
SVN Revision: 962
2007-10-23 09:56:52 +00:00
Christophe Romain 1b2da83c28 add extauth script details
SVN Revision: 961
2007-10-23 09:54:50 +00:00
Christophe Romain c167c80f6d Bugfix on previous change (EJAB-380)
SVN Revision: 960
2007-10-17 08:51:35 +00:00
Alexey Shchepin 0d557566fb * src/ejabberdctl.template: Several improvements (EJAB-380)
(thanks to Sander Devrieze, Sergei Golovan, Torsten Werner and
Badlop)
* src/ejabberdctl.cfg.example: Likewise
* src/ejabberd.inetrc: Likewise
* src/Makefile.in: Likewise

SVN Revision: 959
2007-10-17 02:33:19 +00:00
Alexey Shchepin 7583eef401 * src/mod_privacy.erl: Bugfix
SVN Revision: 958
2007-10-17 02:19:44 +00:00
Alexey Shchepin 5f41b6c6f1 * src/mod_vcard_odbc.erl: Reverted previous change
SVN Revision: 957
2007-10-07 10:52:45 +00:00
Alexey Shchepin a3380daa79 * src/mod_vcard_odbc.erl: Bugfix
SVN Revision: 956
2007-10-06 17:52:12 +00:00
Alexey Shchepin 5ab52e2712 * src/mod_offline_odbc.erl: Bugfix
SVN Revision: 955
2007-10-06 17:35:15 +00:00
Alexey Shchepin 4971de9d2a SVN Revision: 954 2007-10-01 10:49:42 +00:00
Alexey Shchepin 63487ff7b2 * src/ejabberd_auth_pam.erl: Support for PAM authentication
(thanks to Evgeniy Khramtsov)
* src/ejabberd.cfg.example: Likewise
* src/configure.ac: Likewise
* src/aclocal.m4: Likewise
* src/Makefile.in: Likewise
* examples/ejabberd.pam: Likewise
* doc/guide.tex: Likewise

SVN Revision: 953
2007-10-01 10:33:03 +00:00
Christophe Romain 665abff588 Added some missing NOT NULL restrictions
SVN Revision: 952
2007-09-28 13:33:27 +00:00
Christophe Romain 0bb936f848 apply rootdir patch from Badlop (EJAB-385)
SVN Revision: 951
2007-09-27 12:32:05 +00:00
Alexey Shchepin f82b84158e * src/ejabberd_s2s.erl: Max number of connections and max number
of connections per node now can be specified via
max_s2s_connections and max_s2s_connections_per_node acl rules

SVN Revision: 950
2007-09-25 16:32:18 +00:00
Mickaël Rémond 4b2bd22533 * ChangeLog: Integration of multiple s2s support (EJAB-360).
SVN Revision: 949
2007-09-14 14:21:41 +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 48a2813ec6 * src/ejabberd_s2_in.erl: Added debug hook for s2s loop (EJAB-358).
SVN Revision: 947
2007-09-14 14:21:12 +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 31449bc720 * src/ejabberd_s2s.erl: open all missing connections if needed.
SVN Revision: 945
2007-09-14 14:20:43 +00:00
Mickaël Rémond f6d376a4fc * src/ejabberd_s2s.erl: untabify
SVN Revision: 944
2007-09-14 14:20:30 +00:00
Mickaël Rémond 5a0b8288d4 * src/ejabberd_s2s.erl: don't check blacklist for services.
SVN Revision: 943
2007-09-14 14:20:15 +00:00
Mickaël Rémond de63c622c2 * src/ejabberd_s2s.erl: Fixed merge conflict (duplicate functions).
SVN Revision: 942
2007-09-14 14:20:01 +00:00
Mickaël Rémond b3fb9d9100 Try to open all s2s connections at the same time, to guarantee the right order of the packets.
SVN Revision: 941
2007-09-14 14:19:48 +00:00
Mickaël Rémond 9dd8e1bf04 Ignore more files in git.
SVN Revision: 940
2007-09-14 14:19:35 +00:00
Mickaël Rémond d7e8374a07 Don't track some files in git.
SVN Revision: 939
2007-09-14 14:19:22 +00:00
Mickaël Rémond 653e6c1791 Comment.
SVN Revision: 938
2007-09-14 14:19:07 +00:00
Mickaël Rémond 78e6eb58d4 max_s2s_connexions_number local parameter added.
SVN Revision: 937
2007-09-14 14:18:51 +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 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 7146a52a84 * doc/guide.tex: Documentation for new configure option --disable-transient-supersisors (EJAB-354).
SVN Revision: 932
2007-09-14 14:17:10 +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 ffd7267082 * src/ejabberd_s2s_in.erl: Moved s2s connexion information from INFO level to DEBUG level (EJAB-353).
SVN Revision: 929
2007-09-14 14:16:04 +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
Alexey Shchepin e809c6c322 * src/gen_mod.erl: Added get_module_opt_host/3 (thanks to Badlop)
SVN Revision: 927
2007-09-11 11:20:36 +00:00
Alexey Shchepin b5465a3f90 SVN Revision: 926 2007-09-11 11:19:12 +00:00
Mickaël Rémond cccd2ab567 * ChangeLog: updated.
SVN Revision: 925
2007-09-10 16:15:36 +00:00
Mickaël Rémond e7cb9680b2 * src/guide.tex: Fix: user_regexp acls are valid for all local users (all vhosts).
SVN Revision: 924
2007-09-10 16:15:00 +00:00
Mickaël Rémond 8cd1adec4b * ChangeLog: Document latest commits.
SVN Revision: 923
2007-09-06 07:45:09 +00:00
Mickaël Rémond 2c5016cd20 * src/guide.tex: Improved documentation for adding a vhost
specific option (EJAB-297).

SVN Revision: 922
2007-09-06 07:45:04 +00:00
Mickaël Rémond d26b8a0251 * src/mod_configure.erl: Virtual host support for mod_configure (Thanks to Badlop) (EJAB-285).
SVN Revision: 921
2007-09-06 07:45:01 +00:00
Alexey Shchepin ef57d79093 * src/mod_offline_odbc.erl: Bugfix
SVN Revision: 920
2007-09-04 22:12:33 +00:00
Mickaël Rémond 43fe376d67 * ChangeLog: Update.
SVN Revision: 919
2007-09-04 07:56:17 +00:00
Mickaël Rémond dcc05ac8d0 * src/mod_register.erl: update ejabberd commands to support XEP-0133 (initial patch by Badlop) (EJAB-325).
* src/mod_configure.erl: Likewise.
* src/mod_announce.erl: Likewise.
* src/jlib.hrl: Likewise.
* src/ejabberd.cfg.example: Likewise.
* doc/guide.tex: Likewise.

SVN Revision: 918
2007-09-04 07:55:41 +00:00
Mickaël Rémond f803d88de0 * doc/release_notes_1.1.4.txt: Updated for release.
SVN Revision: 916
2007-09-03 08:51:27 +00:00
Mickaël Rémond 036887f082 * examples/extauth/check_pass_null.pl: Perl is generally available
as a default in most Linux distributions.

SVN Revision: 915
2007-09-03 08:51:12 +00:00
Mickaël Rémond 11c798dc05 * doc/guide.html: Generated latest version of the documentation.
SVN Revision: 914
2007-09-03 08:51:01 +00:00
Mickaël Rémond a9db59bb88 * doc/guide.tex: Reverted previous change (bad cut/paste).
SVN Revision: 913
2007-09-03 08:50:49 +00:00
Alexey Shchepin 5994816a27 * src/jlib.erl: Removed http_base_64:decode call
SVN Revision: 908
2007-09-02 15:56:17 +00:00
Alexey Shchepin 978b7aea12 * src/mod_muc/mod_muc_room.erl: Added logging of MUC admin/owner
queries

SVN Revision: 907
2007-09-01 21:15:40 +00:00
Alexey Shchepin 722563ed94 * src/mod_muc/mod_muc_room.erl: Added user_message_shaper and
room_shaper options
* src/mod_muc/mod_muc.erl: Likewise

SVN Revision: 906
2007-09-01 21:05:04 +00:00
Mickaël Rémond 4b63b03718 * ChangeLog: Missing commit.
SVN Revision: 905
2007-08-31 16:41:33 +00:00
Mickaël Rémond b7976603b1 * doc/guide.tex: Minor examples improvement in LDAP
example (Thanks to Badlop) (EJAB-272).

SVN Revision: 904
2007-08-31 16:41:31 +00:00
Mickaël Rémond ae8fd17287 * doc/guide.tex: Documentation for mod_muc option for server-wide limitation of the maximum number of users per room (EJAB-344).
* doc/guide.tex: Documentation for mod_muc option to allow admin
to enter room even if the maximum number of users
reached (EJAB-345).

SVN Revision: 903
2007-08-31 16:41:27 +00:00
Mickaël Rémond 2c57215904 * src/web/ejabberd_web_admin.erl: Make the web interface pages
"translatable" (Thanks to Badlop) (EJAB-11).

SVN Revision: 902
2007-08-31 16:13:35 +00:00
Alexey Shchepin 6cc2042fec * src/ejabberd.cfg.example: Updated mod_muc 'host' option default
value (thanks to Badlop)

SVN Revision: 901
2007-08-29 18:29:07 +00:00
Alexey Shchepin 4a26e75992 * src/mod_muc/mod_muc_room.erl: The mod_muc option max_users now
limits max number of users in rooms and max_users_admin_threshold
sets a number of admin or owner accounts allowd to join after
max_users occupants

SVN Revision: 900
2007-08-29 17:54:45 +00:00
Mickaël Rémond c34484b53d * doc/release_notes_1.1.4.txt: Added preliminary version to prepare release of ejabberd 1.1.4.
SVN Revision: 898
2007-08-29 16:14:06 +00:00
Mickaël Rémond 8bf6a88279 * doc/guide.tex: Documentation for XML based optimisation build time option (EJAB-298)
SVN Revision: 897
2007-08-29 16:12:59 +00:00
Alexey Shchepin 90ff184472 * src/mod_muc/mod_muc_log.erl: Added missed HTMLization in a
nickname change logging (thanks to Badlop)

SVN Revision: 896
2007-08-29 13:17:03 +00:00
Mickaël Rémond 52c10089aa * src/mod_muc/mod_muc_room.erl: Changed default max number of user
in a room to 200 (EJAB-248)

SVN Revision: 895
2007-08-28 15:05:52 +00:00
Mickaël Rémond 4221a50c80 * src/ChangeLog: Missing commit.
SVN Revision: 894
2007-08-28 14:37:17 +00:00
Mickaël Rémond b0bb9a79c3 * src/mod_offline_odbc.erl: Implements quota for offline messages
in relational database (EJAB-314)
* src/odbc/odbc_queries.erl: Likewise

SVN Revision: 893
2007-08-28 14:36:39 +00:00
Mickaël Rémond a78037fc3c * src/mod_muc/mod_muc_room.erl: Implements muc max users option
from XEP-0045 (Thanks to Jerome Sautret) (EJAB-248).

SVN Revision: 892
2007-08-28 14:35:50 +00:00
Mickaël Rémond f314acd142 * ChangeLog: Fixed attibution to commiter.
SVN Revision: 891
2007-08-28 14:33:31 +00:00
Alexey Shchepin 0015804d97 * doc/guide.tex: Described @HOST@ feature (thanks to Badlop)
SVN Revision: 890
2007-08-27 21:48:06 +00:00
Alexey Shchepin e21da18c87 * doc/guide.tex: Removed mentions of unexistent 'hosts' modules
option (thanks to Badlop)

SVN Revision: 889
2007-08-25 22:48:16 +00:00
Alexey Shchepin 5dfa6edda3 * src/gen_mod.erl: Substitute @HOST@ with hostname in the 'host'
option (thanks to Badlop)
* src/mod_vcard.erl: Likewise
* src/mod_vcard_ldap.erl: Likewise
* src/mod_vcard_odbc.erl: Likewise
* src/mod_muc/mod_muc.erl: Likewise
* src/mod_irc/mod_irc.erl: Likewise
* src/mod_echo.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/mod_proxy65/mod_proxy65_service.erl: Likewise

SVN Revision: 888
2007-08-25 17:24:00 +00:00
Alexey Shchepin 24ff98d50d Fixed conflict
SVN Revision: 887
2007-08-24 16:18:46 +00:00
Alexey Shchepin a8bc3a46af * src/web/ejabberd_web_admin.erl: Moved roster stuff to mod_roster*
* src/mod_roster.erl: Likewise
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 886
2007-08-24 16:15:05 +00:00
Alexey Shchepin 38ad132ba2 * src/ejabberd_sm.erl: Removed check which denies resource to
receive its own presence

SVN Revision: 885
2007-08-24 03:54:42 +00:00
Alexey Shchepin 727a70c2cb * src/web/ejabberd_web_admin.erl: Added hooks to allow plugins to
add their pages without modifying ejabberd_web_admin.erl (thanks
to Badlop)
* src/web/ejabberd_web_admin.hrl: Macro definitions moved here
* src/mod_shared_roster.erl: Updated
* src/mod_offline.erl: Likewise
* src/mod_offline_odbc.erl: Likewise

SVN Revision: 884
2007-08-23 00:51:54 +00:00
Alexey Shchepin 106cf7f963 * src/jlib.erl: Use http_base_64:decode if available
SVN Revision: 883
2007-08-21 22:28:41 +00:00
Alexey Shchepin 3f92fb1acc * src/mod_roster.erl: Don't send roster push when unsubscribing in
"None + Pending In" state
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 882
2007-08-20 18:57:11 +00:00
Alexey Shchepin 8cc493a43f * src/mod_offline.erl: Renamed MAX_OFFLINE_MSGS to MaxOfflineMsgs
SVN Revision: 881
2007-08-20 18:02:12 +00:00
Alexey Shchepin 262cff552b SVN Revision: 880 2007-08-20 17:35:12 +00:00
Jérôme Sautret 6fcef6f5c4 * src/odbc/ejabberd_odbc_sup.erl: Add an odbc_pool_size config file option to choose the number of SQL
connection in each pool (EJAB-58).
* src/odbc/ejabberd_odbc.erl: Add an odbc_keepalive_interval config file option to perform a keep
alive query at given interval (EJAB-206).

SVN Revision: 879
2007-08-16 16:37:00 +00:00
Mickaël Rémond 731457a8bb * src/mod_offline.erl: Added a config option to define the maximum
number of offline messages per user (EJAB-314).

SVN Revision: 878
2007-08-13 17:28:26 +00:00
Mickaël Rémond b5c66657c9 * doc/guide.tex: Missing link.
SVN Revision: 876
2007-08-13 14:22:59 +00:00
Mickaël Rémond c15225abc8 * doc/guide.tex: Added documentation for the mod_offline quota
(EJAB-314).
* doc/guide.tex: Remove release notes (EJAB-323).

SVN Revision: 875
2007-08-13 14:13:44 +00:00
Mickaël Rémond 51f0496d0a * doc/release_notes_1.1.3.txt: Adding missing file.
SVN Revision: 872
2007-08-13 12:46:46 +00:00
Mickaël Rémond db957c4295 * src/mod_offline.erl: Returns an error message to sender when
message is discarded due to quota (EJAB-314).

SVN Revision: 871
2007-08-13 10:27:28 +00:00
Mickaël Rémond 915d94b0dc * src/odbc/ejabberd_odbc.erl: UTF-8 support for MySQL5 (EJAB-318).
SVN Revision: 868
2007-08-12 15:39:01 +00:00
Alexey Shchepin b1b348e184 * doc/guide.tex: Minor update (thanks to Sergei Golovan)
SVN Revision: 862
2007-08-09 08:03:00 +00:00
Mickaël Rémond b352d1bddd * src/mod_offline.erl: Typo.
SVN Revision: 861
2007-08-08 09:54:26 +00:00
Mickaël Rémond 4e82569bcb * src/mod_offline.erl: Only count messages if a quota has been
actually set (EJAB-314).
* src/p1_mnesia.erl: Minor coding style change.

SVN Revision: 860
2007-08-08 09:48:41 +00:00
Mickaël Rémond 9d03ea3f98 * src/mod_offline.erl: Started implementation of mod_offline
quota. For now, it require change in code. Will be turn into a
config file parameter soon. (EJAB-314).
* src/p1_mnesia.erl: Added memory efficient record count in
Mnesia.

SVN Revision: 859
2007-08-07 16:43:02 +00:00
Mickaël Rémond c72cb51c73 * src/mod_announce.erl: Added support to all the announce features described in documentation. Access to all announce features through command line, adhoc commands and disco (Thanks to Badlop) (EJAB-18).
* src/gen_mod.erl: Likewise.
* doc/guide.tex: Likewise.

SVN Revision: 858
2007-08-03 08:53:05 +00:00
Alexey Shchepin bd00eb8898 * src/mod_muc/mod_muc.erl: Added default_room_options option
(thanks to Etan Reisner and Badlop)
* src/mod_muc/mod_muc_room.erl: Likewise
* doc/guide.tex: Updated

SVN Revision: 857
2007-08-02 03:02:25 +00:00
Alexey Shchepin 7c24a9a400 * src/mod_muc/mod_muc.erl: Added default_room_options option
(thanks to Etan Reisner and Badlop)
* src/mod_muc/mod_muc_room.erl: Likewise
* doc/guide.tex: Updated

SVN Revision: 856
2007-08-02 02:30:25 +00:00
Mickaël Rémond d5e14e686a * doc/guide.tex: Front page table formatting that render correctly in HTML and update mentionning CEAN as a way to install ejabberd (Thanks to Badlop) (EJAB-272).
SVN Revision: 855
2007-08-01 18:09:00 +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 a1481f27aa * src/mod_private.erl: Reduce memory consumption on user private storage removal (EJAB-299).
SVN Revision: 852
2007-08-01 09:36:30 +00:00
Mickaël Rémond 442dd0667b * src/xml.erl: Removing debug printout.
SVN Revision: 851
2007-07-31 14:47:52 +00:00
Mickaël Rémond 3f0a3784f5 * Updating SVN HTML documentation.
SVN Revision: 850
2007-07-31 13:03:20 +00:00
Mickaël Rémond 1ab47669ff * src/xml.erl: Making use of CDATA escaping optional through with a compile time option (EJAB-298).
* src/Makefile.in: Likewise.
* src/configure.ac: Likewise.

SVN Revision: 849
2007-07-31 12:05:00 +00:00
Alexey Shchepin a78ea8fb54 * src/mod_version.erl: Added option to hide OS version (thanks to
Badlop)
* doc/guide.tex: Updated

SVN Revision: 848
2007-07-31 04:13:58 +00:00
Alexey Shchepin 588b43f9b7 * src/msgs/zh.msg: Updated (thanks to Shelley Shyan)
* src/msgs/es.msg: Updated (thanks to Badlop)

SVN Revision: 847
2007-07-31 04:13:49 +00:00
Alexey Shchepin db5aa57774 * src/msgs/gl.msg: New galician translation (thanks to
Carlos E. Lopez)

SVN Revision: 846
2007-07-31 04:13:39 +00:00
Alexey Shchepin 27a826cfe8 * src/ejabberd_config.erl: Added possibility for appending values
to config options (thanks to Badlop)
* doc/guide.tex: Updated

SVN Revision: 845
2007-07-31 04:13:29 +00:00
Mickaël Rémond bdb2c6820f * src/xml.erl: Better escaping management with CDATA. We only add CDATA enclosure when needed. CDATA end token is properly escaped.
SVN Revision: 844
2007-07-30 17:35:00 +00:00
Mickaël Rémond f6095694b1 * Updated documentation version number in SVN (to avoid confusion).
SVN Revision: 843
2007-07-30 16:20:30 +00:00
Mickaël Rémond af33f13371 * src/xml.erl: Only wrap xmldata nodes in xml cdata "tag" if bigger than 50 bytes. Shorter xmlcdata nodes will be escaped.
SVN Revision: 842
2007-07-30 13:13:59 +00:00
Mickaël Rémond 15eee1c604 * src/tls/tls_drv.c: Sends the entire certificate chain (EJAB-209).
SVN Revision: 841
2007-07-30 12:29:02 +00:00
Mickaël Rémond bf6e5a0d26 * src/acl.erl: Remove compilation warnings (EJAB-290).
SVN Revision: 840
2007-07-30 11:06:50 +00:00
Mickaël Rémond e9bbed2299 * src/xml_stream.erl: Group CDATA on a single xmlcdata node (splitting is not relevant as dependant on TCP/IP packet fragmentation) (EJAB-292).
SVN Revision: 839
2007-07-30 10:06:49 +00:00
Mickaël Rémond 3f51e73944 * src/xml.erl: Remove compilation warnings (EJAB-290).
SVN Revision: 838
2007-07-30 09:09:24 +00:00
Mickaël Rémond 3cd7d1b54b * src/xml.erl: Removed more code commented out.
SVN Revision: 837
2007-07-30 08:36:03 +00:00
Mickaël Rémond b8cd5c3f0e * src/xml.erl: Do not crypt binary CData, but enclose the value in
XML CDATA "tag".
* src/xml.erl: Code clean-up: removed old code in comments.

SVN Revision: 836
2007-07-30 08:32:47 +00:00
Mickaël Rémond 888acbdb2e * src/mod_roster_odbc.erl: Better error management when bad JID in roster table (EJAB-289).
SVN Revision: 835
2007-07-28 09:36:37 +00:00
Mickaël Rémond bf416ad52d * src/web/ejabberd_web_admin.erl: Code clean-up.
SVN Revision: 834
2007-07-26 10:22:44 +00:00
Mickaël Rémond eee30112ef * Added TODO comment
SVN Revision: 833
2007-07-26 10:13:04 +00:00
Mickaël Rémond 59fa698967 * src/mod_offline.erl: Code clean-up.
SVN Revision: 832
2007-07-26 10:08:41 +00:00
Mickaël Rémond 8d9e093788 * src/gen_mod.erl: Throw error more cleanly.
SVN Revision: 831
2007-07-26 09:56:38 +00:00
Mickaël Rémond 83397fdc45 * src/mod_configure.erl: One ACL call was not virtual host compliant.
SVN Revision: 830
2007-07-26 09:52:28 +00:00
Mickaël Rémond 75448d953d * src/mod_configure.erl: One ACL call was not virtual host compliant.
SVN Revision: 829
2007-07-26 09:49:23 +00:00
Mickaël Rémond b1a3c639cb * src/ejabberd_auth_odbc.erl: Fixed wrong call preventing user removal with relational databases.
SVN Revision: 828
2007-07-26 09:42:14 +00:00
Mickaël Rémond 9081f1f2b6 * src/mod_last_odbc.erl: Adapted to mod_privacy changes.
* src/mod_privacy_odbc.erl: Refactoring to extract records in include file.

SVN Revision: 827
2007-07-26 09:37:16 +00:00
Mickaël Rémond df57442d75 * src/mod_last.erl: Adapted to mod_privacy changes.
SVN Revision: 826
2007-07-26 09:29:52 +00:00
Mickaël Rémond ad16c0f4a4 * src/mod_last.erl: Adapted to mod_privacy changes.
* src/mod_privacy.erl: Refactoring to extract records in include file.
* src/mod_privacy.hrl: Likewise.

SVN Revision: 825
2007-07-26 09:13:31 +00:00
Mickaël Rémond 54a5b2d3e9 * src/mod_roster_odbc.erl: Fixed wrong call.
SVN Revision: 824
2007-07-26 08:30:25 +00:00
Mickaël Rémond 637ce31f5e * src/p1_fsm.erl: Use of catch can break tail recursion.
SVN Revision: 823
2007-07-25 08:48:55 +00:00
Mickaël Rémond be494565a9 * doc/guide.tex: Added recommandations on max_stanza options usage.
SVN Revision: 822
2007-07-24 09:17:29 +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 799ff1d883 * src/ejabberd_s2s_in.erl: Add s2s whitelist / blacklist support on incoming s2s connections (EJAB-283)
* src/ejabberd_s2s.erl: Likewise

SVN Revision: 820
2007-07-19 21:17:13 +00:00
Mickaël Rémond 944ef9bbc2 * src/ejabberd_s2s.erl: Fixed typo.
SVN Revision: 819
2007-07-18 18:42:00 +00:00
Mickaël Rémond 9da2c78eb4 * src/ejabberd_s2s.erl: Implements s2s hosts whitelist / blacklist
* src/ejabberd.cfg.example: Likewise

SVN Revision: 818
2007-07-18 17:42:53 +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 dcf883005d * src/mod_configure.erl: Bugfix: Show only virtual host users on admin disco for all users (EJAB-268) (Thanks to Badlop).
SVN Revision: 816
2007-07-17 08:21:28 +00:00
Mickaël Rémond 0b0c889bca * src/mod_muc/mod_muc_log.erl: Recognise more URI schemes in logged HTML (EJAB-279) (Thanks to qu1j0t3).
SVN Revision: 815
2007-07-17 07:55:26 +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
Mickaël Rémond 745be8373f * src/odbc/ejabberd_odbc.erl: Better error handling for MySQL native driver (EJAB-224).
SVN Revision: 813
2007-07-17 07:09:04 +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
Mickaël Rémond b16e3f6d0b * src/mod_echo.erl: mod_echo does not reply to other components. This is to make sure that a component will not discover its own capabilities (EJAB-281).
* src/ejabberd.cfg: disable mod_echo in the example config file. mod_echo is mainly a development/test module.

SVN Revision: 810
2007-07-11 08:37:30 +00:00
Mickaël Rémond 3fe646c3cb * src/odbc/mssql.sql: Nickname cannot be null in rosterusers table (MSSQL)
* src/odbc/mysql.sql: Likewise
* src/odbc/pg.sql: Likewise

SVN Revision: 809
2007-07-09 17:22:09 +00:00
Mickaël Rémond 03fde5d50c * Added missing file.
SVN Revision: 807
2007-06-30 06:07:09 +00:00
Mickaël Rémond 221532428f * src/ejabberd_config.erl: Normalize hostnames in config file. If mixed case is used, the hostname will be now useable (EJAB-277).
* src/stringprep/stringprep_sup.erl: Likewise
* src/stringprep/Makefile.in: Likewise
* src/stringprep/Makefile.win32: Likewise
* src/ejabberd_app.erl: Likewise

SVN Revision: 806
2007-06-29 17:27:42 +00:00
Mickaël Rémond ede1693f20 * src/ejabberd_auth_anonymous.erl: Do not purge non anonymous accounts when using anonymous authentication with another type of auth (EJAB-216).
SVN Revision: 805
2007-06-28 17:39:53 +00:00
Mickaël Rémond 525b8e9374 * src/ejabberd_service.erl: Added an option to disable from attribute checks in packets coming from an external component (EJAB-275)
* doc/guide.tex: Likewise

SVN Revision: 804
2007-06-28 14:32:48 +00:00
Mickaël Rémond 12ab036236 * doc/guide.tex: Documentation rework started (EJAB-272)
* doc/introduction.tex: Likewise

SVN Revision: 803
2007-06-28 09:16:21 +00:00
Christophe Romain b7e16968b6 add ChangeLog entry for r801
SVN Revision: 802
2007-06-28 09:08:06 +00:00
Christophe Romain d27fbcc27c corrects EJAB-273, remove obsolete OnlineUsers calculation
SVN Revision: 801
2007-06-28 08:31:46 +00:00
Jérôme Sautret 2e00142b38 Cancel revision 798
SVN Revision: 799
2007-06-27 11:05:14 +00:00
Jérôme Sautret 9cd3a6db07 Unsafe working version of http file transfer
SVN Revision: 798
2007-06-27 10:01:39 +00:00
Alexey Shchepin ef7e43b2dc * src/mod_muc/mod_muc_room.erl: Include <body/> in MUC invitations
for older clients (thanks to Michael Scherer)

SVN Revision: 796
2007-06-26 18:00:36 +00:00
Mickaël Rémond 6c3a79f9df * doc/guide.tex: Typos
SVN Revision: 795
2007-06-25 17:44:48 +00:00
Mickaël Rémond 20da906311 * src/mod_muc/mod_muc_room.erl: New anti-abuse options: min_presence_interval and min_message_interval (EJAB-227)
* doc/guide.tex: Likewise

SVN Revision: 794
2007-06-25 16:43:42 +00:00
Christophe Romain 7ec8ce9e50 apply patch from EJAB-261
SVN Revision: 793
2007-06-25 12:09:43 +00:00
Mickaël Rémond 6a6c6adf5d * doc/guide.tex: Documentation improvements on watchdog
SVN Revision: 792
2007-06-25 07:45:50 +00:00
Mickaël Rémond e8308beb47 * doc/guide.text: No need to escape underscore in Latex verbatim sections
SVN Revision: 791
2007-06-25 07:41:25 +00:00
Mickaël Rémond 009339a956 * doc/guide.tex: Watchdog alert documentation
* src/ejabberd.cfg.example: Likewise

SVN Revision: 790
2007-06-25 07:15:30 +00:00
Alexey Shchepin 57e3d9fda7 * src/mod_irc/mod_irc.erl: Added an option for default IRC
encoding (thanks to Badlop)
* doc/guide.tex: Updated

SVN Revision: 789
2007-06-22 15:25:27 +00:00
Alexey Shchepin a53efc2b05 * src/mod_disco.erl: Don't override accumulated value in
get_local_identity/5 (thanks to Magnus Henoch and Badlop)

SVN Revision: 788
2007-06-22 14:15:43 +00:00
Alexey Shchepin 56b5d113a4 * src/web/ejabberd_web_admin.erl: Added links to server and
virtual host homes (thanks to Badlop)

SVN Revision: 787
2007-06-22 14:04:45 +00:00
Mickaël Rémond 81117800e8 * src/mod_muc/mod_muc_room.erl: It is now possible to limit who is allowed to create persistent MUC rooms (Thanks to Badlop) (EJAB-257)
* src/mod_muc/mod_muc.erl: Likewise
* doc/guide.tex: Likewise
* src/ejabberd.cfg.example: Likewise

SVN Revision: 786
2007-06-20 11:25:19 +00:00
Mickaël Rémond d2dd6eef09 * src/odbc/odbc_queries.erl: Added missing users_number/1 for MSSQL (EJAB-239).
SVN Revision: 785
2007-06-18 10:22:54 +00:00
Alexey Shchepin 697566476f * src/mod_roster_odbc.erl: Fixed typo
SVN Revision: 782
2007-06-12 16:44:15 +00:00
Alexey Shchepin 241c49dc3c * src/web/ejabberd_web_admin.erl: Show IP address of connected
resources on user info page (thanks to Oleg Palij)

SVN Revision: 781
2007-06-10 18:13:37 +00:00
Alexey Shchepin 3b7e23df5a * src/ejabberd_config.erl: Fixed "language" option processing
(thanks to Badlop)

SVN Revision: 780
2007-06-07 18:27:35 +00:00
Alexey Shchepin ab0315e592 * src/msgs/zh.msg: Updated (thanks to Shelley Shyan)
* src/msgs/ca.msg: New Catalan translation (thanks to Vicent
Alberola)

SVN Revision: 779
2007-06-07 18:17:16 +00:00
Mickaël Rémond 9f48fe49c3 * src/xml.erl: Add new helper function get_subtag_cdata/2.
SVN Revision: 778
2007-06-05 01:50:28 +00:00
Alexey Shchepin b9e790f637 * src/mod_vcard_odbc.erl: Fix for previous commit (thanks to
Badlop)

SVN Revision: 777
2007-05-30 21:15:28 +00:00
Mickaël Rémond 5c15f185c2 * src/mod_vcard_odbc.erl: Make service description translatable in discovery (EJAB-236)
* src/mod_vcard_ldap.erl: Likewise

SVN Revision: 776
2007-05-29 14:53:09 +00:00
Mickaël Rémond c228e7aeb3 * src/Makefile.in: Added Dialyzer target (EJAB-189 - Thanks to Geoff Cant)
* src/Makefile.in: Build XmppAddr.beam in a single pass
* src/mod_muc/Makefile.in: +debug_info directive support
* src/stringprep/Makefile.in: Likewise
* src/mod_irc/Makefile.in: Likewise
* src/web/Makefile.in: Likewise
* src/eldap/Makefile.in: Likewise
* src/mod_pubsub/Makefile.in: Likewise
* src/ejabberd_zlib/Makefile.in: Likewise
* src/mod_proxy65/Makefile.in: Likewise
* src/tls/Makefile.in: Likewise
* src/odbc/Makefile.in: Likewise

SVN Revision: 775
2007-05-29 14:31:12 +00:00
Mickaël Rémond 03740c8bca * src/mod_vcard.erl: Make services description translatable in discovery (EJAB-236 - thanks to Badlop)
* src/mod_muc/mod_muc.erl: Likewise
* src/mod_irc/mod_irc.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/mod_proxy65/mod_proxy65_service.erl: Likewise
* src/msgs/fr.msg: Added service description translation

SVN Revision: 774
2007-05-29 13:14:09 +00:00
Alexey Shchepin c9e139d80a * src/ejabberdctl.template: Updated version of ejabberdctl (thanks
to Christophe Romain)
* tools/ejabberdctl: Likewise
* src/Makefile.in: Updated

SVN Revision: 773
2007-05-21 03:41:13 +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 06320f429a * src/msgs/zh.msg: New chinese translation (thanks to Shelley
Shyan)

SVN Revision: 771
2007-05-18 13:01:05 +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 897cc13f42 * src/ejd2odbc.erl: Bugfix (thanks to Badlop)
SVN Revision: 769
2007-05-15 00:07:25 +00:00
Alexey Shchepin b444faaf89 * src/ejd2odbc.erl: Bugfix (thanks to Badlop)
SVN Revision: 768
2007-05-13 22:41:19 +00:00
Alexey Shchepin a087c00a92 * src/mod_stats.erl: Updated
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 767
2007-05-12 18:14:21 +00:00
Alexey Shchepin 8aab10d28c * src/ejabberd_auth.erl: Added get_vh_registered_users_number/1
function
* src/ejabberd_auth_odbc.erl: Likewise
* src/odbc/odbc_queries.erl: Added users_number/1 function
* src/ejabberd.cfg.example: Added an example for
pgsql_users_number_estimate option

SVN Revision: 766
2007-05-12 18:09:38 +00:00
Alexey Shchepin a10923c197 * src/ejabberd_auth_anonymous.erl: Added anonymous_purge_hook
(thanks to Christophe Romain and Mickael Remond)
* src/mod_offline.erl: Likewise
* src/mod_offline_odbc.erl: Likewise
* src/mod_roster.erl: Likewise
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 765
2007-05-12 16:28:34 +00:00
Alexey Shchepin 737bb8888a * src/mod_muc/mod_muc.erl: Bugfix
SVN Revision: 764
2007-05-09 14:47:58 +00:00
Alexey Shchepin 396b945d20 * src/ejabberd_receiver.erl: Workaround for inet_drv bug
* src/web/ejabberd_http_poll.erl: Added sockname/1 and peername/1
stubs

SVN Revision: 763
2007-05-07 17:52:35 +00:00
Alexey Shchepin 32613987a8 * src/web/ejabberd_http.hrl: Added "ip" field in the "request"
record
* src/web/ejabberd_http.erl: Likewise

SVN Revision: 762
2007-05-07 15:47:33 +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 ab0d7b9151 * src/ejabberd_sm.erl: Added set_presence_hook
SVN Revision: 760
2007-05-03 07:41:16 +00:00
Alexey Shchepin 2ae5d13ab8 * src/ejabberd_sm.erl: Added check for existence of incoming
subscription destination

SVN Revision: 759
2007-05-03 05:15:12 +00:00
Alexey Shchepin acdb78c28a * src/msgs/it.msg: Added italian translation (thanks to Luca
Brivio)

SVN Revision: 758
2007-05-03 04:29:35 +00:00
Alexey Shchepin b9e7fa2ef1 * src/mod_muc/mod_muc_room.erl: More accurate invitation errors
(thanks to Magnus Henoch)

SVN Revision: 757
2007-05-03 04:07:29 +00:00
Christophe Romain 3acce9763a make install does not overwrites existing ejabberd.cfg anymore, ejabberd.cfg-new created instead
SVN Revision: 756
2007-04-30 07:08:01 +00:00
Mickaël Rémond 852774dac0 SVN Revision: 754 2007-04-27 14:10:19 +00:00
Mickaël Rémond d68583f419 * contrib/ejabberd-modules.repo: List of ejabberd-modules to add for ejabberd packaging (source archive and installer)
SVN Revision: 753
2007-04-27 14:09:55 +00:00
Alexey Shchepin 1e5a9d9f43 * src/mod_roster_odbc.erl: Don't deliver roster items in "None +
Pending In" state
* src/mod_roster.erl: Likewise

SVN Revision: 752
2007-04-26 14:45:16 +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 c65e1e7ae0 * src/ejabberd_sm.erl: Minor optimisation
* src/ejabberd_system_monitor.erl: Experimental watchdog
* src/ejabberd_sup.erl: Likewise
* src/ejabberd_config.erl: Likewise

SVN Revision: 750
2007-04-12 05:31:53 +00:00
Mickaël Rémond e5607ea03a * src/guide.tex: Fixed typo.
SVN Revision: 749
2007-03-22 08:46:08 +00:00
Alexey Shchepin 86cd895b6d * src/mod_muc/mod_muc.erl: Better behaviour under high load
SVN Revision: 748
2007-03-22 02:26:35 +00:00
Alexey Shchepin 77282b0e1a * src/ejabberd_s2s.erl: Don't bounce packets with "error" and
"result" type

SVN Revision: 747
2007-03-17 23:02:06 +00:00
Alexey Shchepin 3d7090f62c * src/ejabberd_s2s.erl: Fixed spelling
SVN Revision: 746
2007-03-17 22:53:42 +00:00
Alexey Shchepin 829f30e63b * src/ejabberd_s2s.erl: Don't start s2s process for existing
connection in case of race condition

SVN Revision: 745
2007-03-17 22:17:03 +00:00
Alexey Shchepin c917642b7f * src/ejabberd_service.erl: Added shaper_rule option, changed
service connection log message

SVN Revision: 744
2007-03-13 16:01:39 +00:00
Mickaël Rémond a1d0e7d7cb * src/ejabberd_service.erl: Add extra info in the log about which
components is connected and which Erlang process is handling
it. This is usefull in context where many types of components are
used (Thanks to Jerome Sautret) (EJAB-211).

SVN Revision: 743
2007-03-13 15:01:27 +00:00
Mickaël Rémond 44d3ea9c42 * src/web/ejabberd_http.erl: Support for binaries in ejabberd HTTP
server (Thanks to Massimiliano Mirra) (EJAB-197).

SVN Revision: 742
2007-03-10 17:57:19 +00:00
Mickaël Rémond 2f11e6beac * src/configure.ac: autoconf improvements (thanks to Tony Finch) (EJAB-204).
* src/aclocal.m4: Likewise.

SVN Revision: 741
2007-03-10 16:27:17 +00:00
Mickaël Rémond 48c073abd2 * src/odbc/ejabberd_odbc.erl: ejabberd admin can now choose the
relational database port to user from ejabberd configuration
file (EJAB-195).
* src/doc/guide.tex: Likewise.

SVN Revision: 740
2007-03-10 15:53:53 +00:00
Mickaël Rémond 0be3fe1377 * src/mod_muc/mod_muc_log.erl: Fix wrong return on check access log.
SVN Revision: 739
2007-03-02 14:57:26 +00:00
Alexey Shchepin ec67ec5dd0 * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

SVN Revision: 738
2007-03-01 05:45:30 +00:00
Alexey Shchepin 39c1eb4be7 * src/mod_pubsub/mod_pubsub.erl: Bugfix
SVN Revision: 737
2007-02-22 07:39:05 +00:00
Alexey Shchepin 6dc78ef0b5 * src/mod_proxy65/mod_proxy65_sm.erl: Cluster support (thanks to
Evgeniy Khramtsov)

* src/mod_proxy65/mod_proxy65_stream.erl: Code cleanup (thanks to
Evgeniy Khramtsov)

* src/mod_proxy65/mod_proxy65.hrl: Fixed typo (thanks to Evgeniy
Khramtsov)

SVN Revision: 736
2007-02-22 05:03:51 +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
Mickaël Rémond aa68cff85e * src/mod_muc/mod_muc_room.erl: Added an option set affiliations.
SVN Revision: 734
2007-02-19 16:56:06 +00:00
Mickaël Rémond 6a54d828c4 * doc/api/*: Added Erlang documentation generation script (EJAB-188).
* doc/version.tex: Updated.
* src/ejabberd.app: Updated.

SVN Revision: 733
2007-02-19 15:02:28 +00:00
Mickaël Rémond 090ba85424 * src/odbc/pg.sql: last table, state column cannot be NULL (EJAB-191).
* src/odbc/mysql.sql: likewise.
* src/odbc/mssql.sql. likewise.

SVN Revision: 732
2007-02-19 14:19:27 +00:00
Mickaël Rémond 90488e5f37 * src/ejabberd_auth_ldap.erl: prevent anonymous bind on LDAP servers
as ejabberd is providing other anonymous authentication mechanism
(EJAB-190).

SVN Revision: 731
2007-02-19 13:27:18 +00:00
Mickaël Rémond 1affdd8dce * src/cyrsasl_plain.erl: bad-auth error code replaced by not-authorized
(EJAB-187).

SVN Revision: 730
2007-02-19 11:22:19 +00:00
Mickaël Rémond 42caa09699 * src/aclocal.m4: configure --with-erlang option is now working (Thanks
to Jerome Sautret) (EJAB-186).

SVN Revision: 729
2007-02-19 11:06:28 +00:00
Mickaël Rémond 5882e29fb6 * src/mod_muc/mod_muc_log.erl: Spam prevention: The default behaviour
is now to use the nofollow rel attributes for links that are submitted
by users (EJAB-185).
* doc/guide.tex: Likewise.

SVN Revision: 728
2007-02-19 10:49:23 +00:00
Mickaël Rémond 909cfd7b21 * src/mod_muc/mod_muc_room.erl: API improvement: Implementation of an
event to destroy MUC room from an external application (Thanks to
Massimiliano Mirra) (EJAB-184).

SVN Revision: 727
2007-02-19 09:45:58 +00:00
Alexey Shchepin 0d5e433b91 * src/ejabberd_s2s.erl: Confirm to RFC3920 section 10.3 (thanks to
Jerome Sautret)

SVN Revision: 726
2007-02-18 17:58:47 +00:00
Mickaël Rémond 1f4ea1f302 * src/mod_muc/mod_muc.erl: Node now try to clean its own online room when restarting (EJAB-182).
SVN Revision: 725
2007-02-18 17:05:32 +00:00
Alexey Shchepin 3c44f24aad * src/mod_muc/mod_muc.erl: Clean online room table on cluster node
restart

SVN Revision: 724
2007-02-13 17:23:36 +00:00
Mickaël Rémond 1e03821f39 * src/ejabberd_auth_ldap.erl: Added ldap_local_filter option. This
option provide an optimisation to reduce LDAP directory load when
using attribute-based filters (EJAB-179).

SVN Revision: 723
2007-02-13 10:01:58 +00:00
Alexey Shchepin 5b4e116cfd * src/web/ejabberd_http.erl: Added separate version of
element_to_string for HTML encoding
* src/xml.erl: Reverted previous change

SVN Revision: 722
2007-02-04 16:04:40 +00:00
Mickaël Rémond 78751e78c0 * src/xml.erl: &apos; entity replaced by &#39; Should work more universaly (in HTML and XML).
SVN Revision: 721
2007-02-04 11:30:44 +00:00
Alexey Shchepin a365f8cd2b * src/mod_roster_odbc.erl: Bugfix (thanks to asdx
<asdx@jabber.snc.ru>)
* src/ejd2odbc.erl: Likewise

SVN Revision: 717
2007-01-30 15:23:48 +00:00
Mickaël Rémond d9e8e07ffd * src/mod_vcard_ldap.erl: LDAP server pool support (thanks to Evgeniy
Khramtsov) (EJAB-175)
* src/eldap/Makefile.in: Likewise
* src/ejabberd_auth_ldap.erl: Likewise
* src/eldap_pool.erl: Likewise

* src/eldap/eldap_utils.erl: Implemented LDAP domain substitution (EJAB-177)

* src/eldap/eldap.erl: Implemented queue to avoid bind deadlock under
heavy load (thanks to Evgeniy Khramtsov)  (EJAB-176)
* src/eldap/eldap.hrl: Likewise

SVN Revision: 716
2007-01-27 16:40:37 +00:00
Mickaël Rémond 32c0253871 * doc/guide.tex: Fixed typos in labels.
SVN Revision: 715
2007-01-26 18:30:36 +00:00
Mickaël Rémond 9fed4c5eba * src/eldap/Makefile.win32: fix build error on Windows.
SVN Revision: 714
2007-01-25 15:54:10 +00:00
Alexey Shchepin 00807235c4 * src/web/*: Plugin architecture for HTTP modules (thanks to
Massimiliano Mirra)

SVN Revision: 713
2007-01-25 05:53:58 +00:00
Mickaël Rémond 456185d0d3 * Generated updated documentation.
SVN Revision: 712
2007-01-24 20:16:01 +00:00
Mickaël Rémond b9adafd29f * doc/guide.tex: Documentation for the domain_balancing_component_number option.
SVN Revision: 711
2007-01-24 18:27:17 +00:00
Mickaël Rémond d82238de32 * doc/guide.tex: Documentation for domain balancing.
SVN Revision: 710
2007-01-24 17:12:35 +00:00
Mickaël Rémond 8dd9cd8b6b * doc/guide.tex: mod_muc now support cluster.
SVN Revision: 709
2007-01-24 16:34:31 +00:00
Mickaël Rémond 6398c23f15 * Generated updated documentation.
SVN Revision: 708
2007-01-24 16:13:37 +00:00
Mickaël Rémond a923a1c83d * doc/guide.tex: Updated the max_user_sessions section.
SVN Revision: 707
2007-01-24 15:56:26 +00:00
Alexey Shchepin efab31848e * src/mod_muc/mod_muc.erl: Now mod_muc can be distributed on
several nodes
* src/mod_muc/mod_muc_room.erl: Likewise

* src/ejabberd_router.erl: Added bare_source and bare_destination
service balancing options and domain_balancing_component_number
option for specifying the number of connected components for the
domain
* src/ejabberd_config.erl: Likewise

SVN Revision: 706
2007-01-19 04:46:44 +00:00
Mickaël Rémond 7fb38dd38a * doc/guide.tex: Latex / Hevea related improvements for documentation
generation (thanks to Sander Devrieze). 
* doc/introduction.tex: Likewise.
* doc/dev.tex: Likewise.
* doc/features.tex: Likewise.

SVN Revision: 705
2007-01-11 08:17:18 +00:00
Mickaël Rémond ba03fc4715 * Changelog: Cosmetic change
SVN Revision: 704
2007-01-09 10:23:09 +00:00
Christophe Romain 1ed4bee7bd mod_pubsub: support presence_based_delivery in cluster
SVN Revision: 703
2007-01-09 10:16:37 +00:00
Christophe Romain cf3ec810d5 support presence_delivery in cluster
SVN Revision: 702
2007-01-09 10:09:51 +00:00
Alexey Shchepin 827fb3d8e0 * src/mod_muc/mod_muc_log.erl: Remove 'right-to-left override'
unicode character (thanks to Badlop)

SVN Revision: 701
2007-01-05 20:05:38 +00:00
Alexey Shchepin 56f01cfe6e * src/ejabberd_s2s_out.erl: Bugfix
SVN Revision: 700
2006-12-31 00:38:11 +00:00
Mickaël Rémond c2f3d4f9a6 * src/mod_private_odbc: Bugfix: an internal error was returned
instead of the actual private data. This is now working as expected.
(EJAB-165)

SVN Revision: 699
2006-12-21 09:03:53 +00:00
Alexey Shchepin ea92c3cf2f * src/ejd2odbc.erl: Bugfix
SVN Revision: 698
2006-12-20 23:22:05 +00:00
Mickaël Rémond 7f4d5a806e * README: Added this file as a quickstart guide.
SVN Revision: 697
2006-12-16 13:57:37 +00:00
Mickaël Rémond 76522293a5 * src/mod_echo.erl: The mod_echo can now be stopped without errors.
This is not a major issue, but can mislead other developers learning
from this example and test module (Thanks to Magnus Henoch) (EJAB-163).

SVN Revision: 696
2006-12-15 22:18:04 +00:00
Mickaël Rémond c265da885a * TODO: Removed. The roadmap is managed on:
http://support.process-one.net/browse/EJAB

SVN Revision: 695
2006-12-15 21:42:16 +00:00
Mickaël Rémond dcaeb764f5 * src/ejabberd_ctl.erl: Bugfix: Now display all register commands for a
vhost and not only one (Thanks to Badlop) (EJAB-162).
* src/ejabberd.cfg.example: Fixed typo.

SVN Revision: 694
2006-12-15 21:26:47 +00:00
Mickaël Rémond 4f0ee52254 * src/ejabberd_config.erl: Added loglevel option. It is now possible to
configure ejabberd dynamic loglevel from the config file (EJAB-74).

SVN Revision: 693
2006-12-14 18:54:50 +00:00
Alexey Shchepin 2bc550aafc * src/ejabberd_receiver.erl: Bugfix
SVN Revision: 692
2006-12-08 20:48:26 +00:00
Alexey Shchepin bb2ffb8765 * src/ejabberd_c2s.erl: Bugfix
SVN Revision: 691
2006-12-08 20:34:34 +00:00
Alexey Shchepin e9047f4b31 * src/mod_roster_odbc.erl: Better error handling
* src/web/ejabberd_http_poll.erl: Minor fix

SVN Revision: 690
2006-12-07 02:56:14 +00:00
Mickaël Rémond beb3a450f0 * src/ejabberd_loglevel.erl: Preliminary dynamic loglevel support.
Debug can be enabled with the command "ejabberd_loglevel:set(5)".
(EJAB-74)
* src/ejabberd_app.erl: Likewise.
* src/ejabberd.hrl: Likewise (More log levels are now supported).
* src/ram_file_io_server.erl: Likewise (Needed to dynamically
recompile the error logger).

SVN Revision: 689
2006-12-04 16:07:44 +00:00
Alexey Shchepin 0b281746c2 * src/ejabberd_receiver.erl: Bugfix
SVN Revision: 688
2006-12-01 17:19:04 +00:00
Mickaël Rémond d5c59d134b * src/mod_proxy65/mod_proxy65_services.erl: Fixed typo.
SVN Revision: 687
2006-11-30 13:50:59 +00:00
Mickaël Rémond 4ab052a475 * src/mod_proxy65/mod_proxy65_services.erl: We now try to get the
address of the component (if registered in DNS) or otherwise get the
IP of the XMPP domain.

SVN Revision: 686
2006-11-30 13:39:05 +00:00
Mickaël Rémond b575394da6 * Removed useless comments.
SVN Revision: 685
2006-11-29 10:21:19 +00:00
Mickaël Rémond 265d42cc1b * src/mod_proxy65/mod_proxy65_services.erl: Now using all interfaces as
default value for proxy listen parameter.

SVN Revision: 684
2006-11-28 15:56:54 +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
Mickaël Rémond 3512c595db * src/muc/mod_muc_room.erl: API improvement. It is now possible
to read and write a room config from a developer module (Thanks
to Massimiliano Mirra) (EJAB-157)

SVN Revision: 682
2006-11-24 13:24:08 +00:00
Mickaël Rémond c82cfe47c2 * doc/guide.tex: Fixed regexp ACL configuration examples (Thanks
to Massimiliano Mirra).

SVN Revision: 681
2006-11-24 11:22:15 +00:00
Alexey Shchepin 661a34ccfc * src/eldap/eldap.erl: Bugfix (thanks to Evgeniy Khramtsov)
* src/ejabberd_sm.erl: The max_user_sessions option is now
configured via access rule
* src/ejabberd.cfg.example: Likewise

SVN Revision: 680
2006-11-23 06:34:05 +00:00
Mickaël Rémond 8489f9ed7f SVN Revision: 679 2006-11-20 13:24:26 +00:00
Mickaël Rémond 86da0b3e1b 2006-11-20 Mickael Remond <mickael.remond@process-one.net>
* src/ejd2odbc.erl: Copy mod_private data from Mnesia to
relational database.  
* src/odbc/odbc_queries.erl: Refactoring.  
* src/odbc/mssql.sql: Likewise.
* doc/guide.tex: Update to mention mod_private_odbc.

* src/odbc/mysql.sql: Started integration of mod_privacy_odbc for
MySQL and MSSQL.
* src/odbc/mssql.sql: Likewise.

SVN Revision: 678
2006-11-20 13:20:47 +00:00
Mickaël Rémond c1192ebedb * src/mod_muc/mod_muc_room.erl: API improvement: It is now easier to extract
data from the MUC room process (EJAB-157).

SVN Revision: 677
2006-11-15 11:41:26 +00:00
Alexey Shchepin 091d2bcb00 * src/ejabberd_node_groups.erl: Support for node tagging
* src/ejabberd_sup.erl: Likewise
* src/ejabberd_frontend_socket.erl: Use node tags to determine
backend nodes
* src/ejabberd_config.erl: Added node_type and cluster_nodes
options
* src/ejabberd_app.erl: Establish connections to the nodes from
the cluster_nodes option

* src/ejabberd_router.erl: Added balancing method option
* src/ejabberd_config.erl: Likewise

SVN Revision: 676
2006-11-07 02:08:51 +00:00
Mickaël Rémond 37061880dc * src/odbc/mysql.sql: Fix database creation script.
SVN Revision: 675
2006-11-05 16:48:33 +00:00
Mickaël Rémond d571a564d3 * src/mod_private_odbc.erl: Support for MySQL and MSSQL.
* src/odbc/odbc_queries.erl: Likewise.
* src/odbc/mysql.sql: Likewise.
* src/odbc/mssql.sql: Likewise.

SVN Revision: 674
2006-11-05 15:51:26 +00:00
Mickaël Rémond 65fcd921b5 * src/odbc/mysql: Database creation script should now be compliant with
MySQL 4.0.x.

SVN Revision: 673
2006-11-04 17:39:11 +00:00
Mickaël Rémond 97dd63eb7a * src/odbc/pg.sql: Database scripts consistency.
* src/odbc/mysql.sql: Likewise.
* src/odbc/mssql.sql: Likewise.

SVN Revision: 672
2006-11-04 16:38:05 +00:00
Mickaël Rémond 2cdb82260d * src/eldap_utils.erl: Fixed missing export (EJAB-154).
SVN Revision: 671
2006-11-04 15:33:20 +00:00
Alexey Shchepin 85cbbeae23 Now really committed
SVN Revision: 670
2006-11-03 15:42:21 +00:00
Alexey Shchepin eb50516da2 Now really added
SVN Revision: 669
2006-11-02 19:18:48 +00:00
Mickaël Rémond a1761ac466 * doc/guide.tex: XEP-0065 proxy documentation (thanks to Evgeniy
Khramtsov).

SVN Revision: 668
2006-10-29 15:07:35 +00:00
Mickaël Rémond 43d687676c * src/ejabberd.cfg.example: Changed the anonymous example a bit
to work in most cases.
* doc/guide.tex: Likewise.

SVN Revision: 667
2006-10-28 16:51:46 +00:00
Alexey Shchepin 399d170a78 * src/mod_proxy65/: XEP-0065 proxy (thanks to Evgeniy Khramtsov)
* src/Makefile.win32: Likewise
* src/Makefile.in: Likewise
* src/configure.ac: Likewise
* src/jlib.hrl: Likewise
* src/ejabberd.hrl: Added the ejabberd URL

SVN Revision: 666
2006-10-28 02:04:55 +00:00
Mickaël Rémond 73e2972886 * src/guide.tex: Fixed typos.
SVN Revision: 665
2006-10-27 16:37:10 +00:00
Mickaël Rémond b2a944a4a2 * src/ejabberd_rdbms.erl: It is now possible to use ldap or
internal authentication with some other modules using relationnal
database storage (EJAB-152). Refactored relational databases
connections initialisation.
* src/ejabberd_auth_odbc.erl: Likewise. odbc supervisor startup is now
delegated to the ejabberd rdbms module.
* src/ejabberd_app.erl: Likewise.

SVN Revision: 664
2006-10-25 07:56:49 +00:00
Alexey Shchepin cd7595e3f4 * src/ejabberd_socket.erl: Added sockname/1 and peername/1
functions
* src/ejabberd_frontend_socket.erl: Likewise
* src/tls/tls.erl: Likewise
* src/ejabberd_zlib/ejabberd_zlib.erl: Likewise

* src/mod_private_odbc.erl: Private storage support using odbc
* src/odbc/pg.sql: Likewise

SVN Revision: 663
2006-10-19 04:46:24 +00:00
Mickaël Rémond 6b08aa6d30 * ChangeLog: Fixed typo.
SVN Revision: 662
2006-10-17 12:40:48 +00:00
Mickaël Rémond d5792ed75e * src/ejabberd_auth_ldap.erl: LDAP authentication now allows to
match on several alternative attributes.
* src/mod_vcard_ldap.erl: Likewise.
* doc/guide.tex: Updated.
* eldap_utils.erl: Refactoring.
* src/eldap/Makefile.in: Likewise.

SVN Revision: 661
2006-10-17 12:35:47 +00:00
Alexey Shchepin 95e2726f71 * src/mod_privacy_odbc.erl: Privacy rules support using odbc
* src/odbc/pg.sql: Likewise

* src/web/ejabberd_http_poll.erl: Bugfix

SVN Revision: 660
2006-10-09 20:32:41 +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 94ec73686e * src/shaper.erl: Bugfix
* src/ejabberd_config.erl: Likewise

SVN Revision: 658
2006-10-02 18:54:10 +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
Mickaël Rémond e4b3da37ef * src/release_notes_1.1.2.txt: Fixed hanging paragraph
SVN Revision: 653
2006-09-27 20:41:02 +00:00
Mickaël Rémond 3bdf0e32fe * Added release note to documentation.
SVN Revision: 650
2006-09-27 17:29:45 +00:00
Mickaël Rémond 9bf5a83598 * doc/release_notes_1.1.2.txt: Fixed typos and rephrasing.
SVN Revision: 648
2006-09-27 16:22:09 +00:00
Mickaël Rémond 616a273286 * doc/release_notes_1.1.2.txt: Minor fixes.
SVN Revision: 647
2006-09-27 13:34:18 +00:00
Mickaël Rémond c0f898bbb8 * doc/guide.tex: Fixed Latexish typos.
SVN Revision: 646
2006-09-27 13:09:50 +00:00
Mickaël Rémond 910d6667eb * doc/release_notes_1.1.2.txt: Draft release notes.
SVN Revision: 645
2006-09-26 17:17:31 +00:00
Mickaël Rémond fef7c626e9 * src/msgs/pl.msg: Updated (thanks to Andrzej Smyk).
SVN Revision: 644
2006-09-26 14:07:35 +00:00
Mickaël Rémond 30371b2483 * src/ejabberd_s2s.erl: More precise message for the new s2s
statistic command.

SVN Revision: 642
2006-09-26 11:08:44 +00:00
Mickaël Rémond 11da06b5e7 * src/mod_muc/mod_muc_room.erl: Minor english update.
* src/msgs/pl.msg: Likewise.
* src/msgs/uk.msg: Likewise.
* src/msgs/pt-br.msg: Likewise.
* src/msgs/cs.msg: Likewise.
* src/msgs/ru.msg: Likewise.
* src/msgs/es.msg: Likewise.
* src/msgs/fr.msg: Likewise.
* src/msgs/de.msg: Likewise.
* src/msgs/nl.msg: Likewise.

SVN Revision: 641
2006-09-26 10:48:05 +00:00
Mickaël Rémond 1451034393 * src/msgs/pt-br.msg: Updated Brazilian translation (thanks to
Renato Botelho) and clean-up.

SVN Revision: 640
2006-09-26 10:31:53 +00:00
Mickaël Rémond d7e96b89ec * src/msgs/de.msg: Updated German translation (thanks to Nikolaus
Polak).

SVN Revision: 639
2006-09-25 22:06:37 +00:00
Mickaël Rémond f5750063f0 * src/ejabberd.app: Version update for ejabberd 1.1.2.
SVN Revision: 638
2006-09-25 20:53:55 +00:00
Mickaël Rémond 2923c6a962 ChangeLog typo
SVN Revision: 637
2006-09-25 15:36:17 +00:00
Mickaël Rémond 041004c042 * src/msgs/pl.msg: Updated German translation (thanks to Zbyszek
Zolkiewski).

SVN Revision: 636
2006-09-25 15:19:09 +00:00
Mickaël Rémond 1c2195ebdb * src/msgs/de.msg: Updated German translation (thanks to Marvin
Preuss).

SVN Revision: 635
2006-09-25 14:41:33 +00:00
Mickaël Rémond c11746181d * src/msgs/nl.msg: Updated Dutch translation (thanks to Sander
Devrieze).

SVN Revision: 634
2006-09-25 14:30:44 +00:00
Alexey Shchepin 3ab30f34fb * src/ejabberd_s2s.erl: Added incoming-s2s-number and
outgoing-s2s-number ejabberdctl commands

SVN Revision: 633
2006-09-25 13:36:41 +00:00
Mickaël Rémond 3a3682a7b3 * src/msgs/cs.msg: Updated Czech translation and removed unused
strings.

SVN Revision: 632
2006-09-25 10:47:52 +00:00
Mickaël Rémond 7dbb35800d * doc/introduction.tex: Minor doc updates for release 1.1.2.
SVN Revision: 631
2006-09-25 08:46:56 +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
Mickaël Rémond 9ababf2a1d * src/msgs/es.msg: Updated Spanish translation (thanks to Badlop).
SVN Revision: 628
2006-09-24 15:44:24 +00:00
Mickaël Rémond 519e78eed6 * src/mod_muc/mod_muc_room.erl: Strings update (thanks to
Serguei Golovan).
* src/msgs/ru.msg: Updated Russian translation (thanks to
Serguei Golovan).
* src/msgs/uk.msg: Updated Ukrainian translation (thanks to
Serguei Golovan).
* src/msgs/fr.msg: Update French translation.

SVN Revision: 626
2006-09-24 14:45:12 +00:00
Mickaël Rémond b2e83ffca6 * src/doc/guide.html: Minor W3C compliance fix in an Hevea
generated URL.

SVN Revision: 625
2006-09-24 12:35:47 +00:00
Mickaël Rémond 322fc0a6b8 * src/doc/features.html: Added to be consistent (guide.html is in the
repository to make Latex optional, but still allow access to the doc).
* src/ejabberd.hrl: Updated to version 1.1.2.

SVN Revision: 624
2006-09-24 09:39:04 +00:00
Mickaël Rémond ce3bdf52d9 * src/msgs/cs.msg: Added Czech translation (thanks to Milos Svasek).
SVN Revision: 622
2006-09-23 09:20:19 +00:00
Alexey Shchepin bb4f9f63b9 * src/eldap/eldap.erl: Enable the keepalive socket option (thanks
to Evgeniy Khramtsov)

* src/ejabberd_auth_ldap.erl: Now uses two LDAP connections
(thanks to Evgeniy Khramtsov)

* src/eldap/eldap_filter.erl: Bugfix (thanks to Evgeniy Khramtsov)
* src/mod_vcard_ldap.erl: Likewise

SVN Revision: 621
2006-09-23 04:28:03 +00:00
Mickaël Rémond 112c609222 * src/mod_muc/mod_muc.erl: Component name is now more user
friendly (thanks to Badlop).
* src/mod_irc/mod_irc.erl: Likewise.
* src/mod_pubsub/mod_pubsub.erl: Likewise.

SVN Revision: 620
2006-09-22 17:01:16 +00:00
Mickaël Rémond 33431d1a45 * src/msgs/fr.msg: updated French translation.
SVN Revision: 619
2006-09-22 09:25:47 +00:00
Mickaël Rémond b7fc7fdada * doc/guide.tex: Large improvements for ejabberd 1.1.2 (thanks to Sander
Devrieze)
* doc/version.tex: Likewise.
* doc/features.tex: Likewise.
* doc/Makefile: Likewise.
* doc/dev.tex: Likewise.

SVN Revision: 617
2006-09-22 09:09:28 +00:00
Mickaël Rémond da53c02892 * doc/guide.tex: Minor fix on index generation.
SVN Revision: 607
2006-09-14 16:08:58 +00:00
Alexey Shchepin 7d2a1af9d9 * doc/guide.tex: Updated (thanks to Evgeniy Khramtsov)
* src/ejabberd_auth_ldap.erl: Better LDAP support (thanks to
Evgeniy Khramtsov)
* src/mod_vcard_ldap.erl: Likewise
* src/eldap/eldap_filter.erl: Likewise

SVN Revision: 606
2006-09-14 02:54:21 +00:00
Mickaël Rémond 6acc96c171 * src/odbc/mssql.sql: Removed unused fields.
SVN Revision: 605
2006-09-11 15:38:48 +00:00
Alexey Shchepin a1d696c36b * src/ejd2odbc.erl: Updated
SVN Revision: 604
2006-09-10 19:25:13 +00:00
Alexey Shchepin 3bb802a650 * 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: 603
2006-09-09 23:34:51 +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
Mickaël Rémond d97eaa26d5 * src/mod_muc/mod_muc.erl: It is now possible to configure the
MUC room history feature. A new option has been added in ejabberd muc
module configuration (history_size) to define the size of the history.
0 is used to disable the feature.
* src/mod_muc/mod_muc_room.erl: Likewise.
* doc/guide.tex: Likewise.

SVN Revision: 601
2006-09-05 15:53:54 +00:00
Alexey Shchepin 0fe9caa304 * src/ejabberd_socket.erl: All XML socket operations moved here
* src/ejabberd_s2s_in.erl: Likewise

SVN Revision: 600
2006-09-05 04:36:01 +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 d0e2ac9ed2 * src/odbc/odbc_queries.erl: Support for Microsoft SQL Server as
a database backend (via ODBC).
* src/odbc/ejabberd_odbc.erl: Likewise.
* src/odbc/mssql.sql: Likewise.
* src/odbc/Makefile.in: Likewise.
* src/ejabberd_auth_odbc.erl: Likewise.
* src/mod_offline_odbc.erl: Likewise.
* src/mod_roster_odbc.erl: Likewise.
* src/mod_last_odbc.erl: Likewise.
* src/configure.ac: Likewise
* doc/guide.tex: Likewise.
* doc/introduction.tex: Likewise.
* src/odbc/pg.sql: Minor fix.

SVN Revision: 598
2006-09-03 15:15:46 +00:00
Mickaël Rémond 40c8c8b559 * src/ejabberd.app: Updated to the current version.
SVN Revision: 597
2006-08-28 17:31:24 +00:00
Mickaël Rémond a7f22bfded * Makefile.in: Fix for MacOSX compilation (EJAB-124).
* ejabberd_zlib/Makefile.in: Likewise.
* mod_irc/Makefile.in: Likewise.
* stringprep/Makefile.in: Likewise.
* tls/Makefile.in: Likewise.

SVN Revision: 596
2006-08-28 14:56:13 +00:00
Alexey Shchepin d3b1bbda47 * src/mod_muc/mod_muc_room.erl: Fixed logging configuring
permission check

SVN Revision: 595
2006-08-27 17:46:27 +00:00
Alexey Shchepin 66561c3602 * src/ejabberd_router.erl: Now filter_packet hook works in
'global' context

SVN Revision: 594
2006-08-14 19:46:14 +00:00
Alexey Shchepin cc4d404364 * src/tls/tls_drv.c: Report OpenSSL error messages (thanks to
Magnus Henoch)

SVN Revision: 593
2006-08-04 02:25:10 +00:00
Alexey Shchepin 81f9ffcd45 * src/mod_muc/mod_muc_room.erl: Use standardized MUC room
configuration fields (thanks to Magnus Henoch and Andy Turner)

SVN Revision: 592
2006-08-04 01:57:51 +00:00
Alexey Shchepin ab2e19a399 * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 591
2006-08-01 23:32:56 +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 e965aae60a * src/acl.erl: The server does not crash anymore on wrong acl rule. Add
rule error message in log file (EJAB-118).

SVN Revision: 589
2006-07-18 12:29:17 +00:00
Mickaël Rémond 6290bac932 * src/web/ejabberd_web_admin.erl: User creation form now creates
the user for the current virual host only and does not require to type
the hostname (EJAB-116).
* src/jlib.erl: String to JID conversion now returns an error if
the JID string contains two arobases.

SVN Revision: 588
2006-07-07 08:06:12 +00:00
Mickaël Rémond 6225c951fd * src/mod_muc/mod_muc_room.erl: Fixed the order in which room presence
packets are sent (First existing presence to new occupant, then new
occupant presence to existing users (EJAB-115).

SVN Revision: 587
2006-07-06 16:06:44 +00:00
Mickaël Rémond a166203194 * src/mod_shared_roster.erl: Shared roster entries can now be
moved or rename from a client without breaking current presence status
(EJAB-70).
* src/mod_roster.erl: Likewise.
* src/mod_roster_odbc.erl: Likewise.

SVN Revision: 586
2006-07-06 14:08:09 +00:00
Mickaël Rémond 6bf03a683d * src/ejabberd_auth.erl: Better handling of errors when the server for
authentication is unknown.

SVN Revision: 585
2006-07-05 14:36:21 +00:00
Mickaël Rémond 9fdef5c15f * src/mod_shared_roster.erl: The logged user (self) is now removed from
the shared roster list (EJAB-110).

SVN Revision: 584
2006-07-05 09:26:52 +00:00
Mickaël Rémond 110c5290b2 * src/mod_shared_roster.erl: Delete the shared roster group now
correctly delete its user entries (EJAB-112).

SVN Revision: 583
2006-07-05 08:52:21 +00:00
Mickaël Rémond 230d66b168 * src/web/ejabberd_web_admin.erl: More flexible parsing the shared
roster members list from the configuration form.

SVN Revision: 582
2006-07-05 08:09:35 +00:00
Alexey Shchepin 2b46e3eaa7 * src/ejabberd_s2s_in.erl: Removed needless check for xmlns:db
when starttls is enabled

SVN Revision: 581
2006-06-19 02:32:57 +00:00
Mickaël Rémond 7d0f9ddce2 * src/web/ejabberd_http_poll.erl: Bugfix: using tuple instead of a Pid
to send Erlang messages in a rarely used case.

SVN Revision: 580
2006-06-15 13:32:48 +00:00
Mickaël Rémond bd276f0b07 * src/ejabberd_auth.erl: Fixed broken multiple connection with
anonymous login problem (EJAB-107).
* src/ejabberd_auth_anonymous.erl: Likewise.

SVN Revision: 579
2006-06-13 16:52:38 +00:00
Mickaël Rémond b80002a8bb * src/mod_pubsub/mod_pubsub.erl: Discovery query on an item does
no more return an "item not found error". Discovery stop
correctly at the item level (Thanks to Christophe Romain) (EJAB-105).

SVN Revision: 578
2006-06-07 14:07:18 +00:00
Mickaël Rémond 9dcd3f4080 * src/mod_pubsub/mod_pubsub.erl: Support for pubsub node
creation ACL.  It is now possible to limit the node creation rights
using an ACL from ejabberd config file (Thanks to Christophe Romain)
(EJAB-104).
* doc/guide.tex: Likewise.
* src/ejabberd.cfg.example.

SVN Revision: 577
2006-06-07 08:38:37 +00:00
Mickaël Rémond 05c50cc5ca * src/web/ejabberd_http.erl: The web module now accepts HTTP
absolute URL (used behind a proxy). This apply to HTTP polling and to
the web interface (Thanks to Jean-Sebastien Pedron).

SVN Revision: 576
2006-06-02 15:02:39 +00:00
Mickaël Rémond ae537d2bfb * src/web/ejabberd_http_poll.erl: Messages polled between the
the last client request and the polling timeout were lost. Those
messages are now resent using ejabberd routing mechanisms (EJAB-87).

SVN Revision: 575
2006-06-02 13:16:21 +00:00
Mickaël Rémond ce5d10eb59 * src/mod_roster.erl: According to RFC3921 section 9.2, outbound
subscribe presence packets must be sent, even if the user has already
asked for subcription previously (subscription: none and pending: out).
The mod_roster now conforms to this behaviour (EJAB-102).
* src/mod_roster_odbc.erl: Likewise.

SVN Revision: 574
2006-05-29 16:48:20 +00:00
Mickaël Rémond 7ec4c9c119 * src/configure: removed debug printout.
SVN Revision: 573
2006-05-27 09:07:32 +00:00
Mickaël Rémond 02dd41c178 * src/configure.ac: Added an optional check for krb5.h in
configure. ejabberd can now be build directly on RedHat and OpenBSD
(EJAB-100).

SVN Revision: 572
2006-05-27 08:46:27 +00:00
Alexey Shchepin c4e98624c3 * src/msgs/sk.msg: Slovak translation (thanks to Juraj Michalek
and SkLUG)

SVN Revision: 571
2006-05-26 22:06:19 +00:00
Alexey Shchepin c737ce1b8c * src/odbc/pg.sql: Updated
* src/mod_shared_roster.erl: Updated

* src/ejabberd_sm.erl: Bugfix

* src/mod_roster.erl: Bugfix
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 570
2006-05-26 00:00:32 +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
Mickaël Rémond 753e768090 * src/ejabberd_sm.erl: The max_user_sessions has been moved to
host configuration.
* src/ejabberd.cfg.example: Likewise.
* doc/guide.tex: Likewise.

SVN Revision: 568
2006-05-22 10:17:22 +00:00
Mickaël Rémond 043c2ccf51 * src/ejabberd_sm.erl: An option to limit the number of opened sessions
for a given user have been added. As a default, a given user can only
log in 10 times with different resources. After that, new connections
replace the older ones.
* src/ejabberd.cfg.example: Likewise.
* doc/guide.tex: Likewise.

SVN Revision: 567
2006-05-21 16:34:32 +00:00
Mickaël Rémond 21b912a375 * src/web/ejabberd_http_poll.erl: Timeout disconnection were not
properly handled after "active once" migration. This is now fixed.

SVN Revision: 566
2006-05-15 15:45:52 +00:00
Mickaël Rémond 177b367cbe * src/ejabberd_ctl.erl: Added a way to delete the older message
from the offline message table. This function is only available if
offline message queue is stored in Mnesia internal database. The
function delete_old_messages is not available in mod_offline_odbc.

SVN Revision: 565
2006-05-07 21:26:06 +00:00
Mickaël Rémond 640e1579f5 * src/ejabberd_ctl.erl: Now prints a user-friendly when trying
to restore a backup from a non-existent file.

SVN Revision: 564
2006-05-07 17:31:12 +00:00
Mickaël Rémond 205c565e6f * src/ejabberd_admin.erl: Code refactoring. Common Mnesia database
restore function.

SVN Revision: 563
2006-05-07 16:57:11 +00:00
Mickaël Rémond ba55665381 * src/mod_configure.erl: Unknown tables or tables from now
unused modules are ignored during restore. The restore can now be
performed in such case (EJAB-80).
* src/web/ejabberd_web_admin.er: Likewise.
* src/ejabberd_admin.erl: Likewise. Code refactoring. Common Mnesia
database restore function.

SVN Revision: 562
2006-05-07 16:52:21 +00:00
Mickaël Rémond c57ca8a483 * src/ejabberd_ctl.erl: Unknown tables or tables from now unused
modules are ignored during restore. The restore can now be performed in
such case.

SVN Revision: 561
2006-05-01 09:55:03 +00:00
Mickaël Rémond 656c1c1570 * doc/release_note_1.1.1.txt: Fixed typo.
SVN Revision: 560
2006-04-28 11:16:14 +00:00
Mickaël Rémond 719306c999 * doc/guide.html: Updated generated HTML version of the guide.
SVN Revision: 558
2006-04-28 09:38:44 +00:00
Mickaël Rémond b86e1a9e5b * src/ejabberd.hrl: release 1.1.1
* doc/version.tex: Likewise
* doc/guide.tex: Likewise

SVN Revision: 557
2006-04-28 09:35:26 +00:00
Mickaël Rémond 960e66423d * Release not for security fix release.
SVN Revision: 556
2006-04-28 08:43:15 +00:00
Alexey Shchepin 66149f862f * src/cyrsasl.erl: Bugfix: anonymous authentication was always
enabled

SVN Revision: 555
2006-04-27 21:24:30 +00:00
Mickaël Rémond bd4c18516c * src/ejabberd_ctl.erl: The status now only returns "started" if
ejabberd is started and ready to accept requests.

SVN Revision: 554
2006-04-26 22:28:05 +00:00
Mickaël Rémond d3777ba590 * Fixed notes for version 1.1.0 release.
SVN Revision: 551
2006-04-24 21:32:31 +00:00
Alexey Shchepin 3e3d78effc * doc/guide.tex: Added a documentation for max_stanza_size option
SVN Revision: 550
2006-04-24 19:25:09 +00:00
Mickaël Rémond 7483d337b4 * src/ejabberd.hrl: Updated for version 1.1.0.
SVN Revision: 549
2006-04-24 13:04:21 +00:00
Mickaël Rémond ccd28e0e5b * Updated documentation before 1.1.0 release
SVN Revision: 548
2006-04-23 22:00:06 +00:00
Mickaël Rémond f01dea67a0 * Updated documentation before 1.1.0 release
SVN Revision: 547
2006-04-23 21:47:18 +00:00
Mickaël Rémond 35c42e2592 doc/release_notes_1.1.0.txt: Preparing release 1.1.0
SVN Revision: 546
2006-04-23 20:43:40 +00:00
Mickaël Rémond 29cec06fea * src/guide.tex: Added documentation for ODBC and native database
configuration (PostgreSQL and MySQL).

SVN Revision: 545
2006-04-23 20:04:40 +00:00
Alexey Shchepin 957ddb325e * doc/guide.tex: Updated (thanks to Sander Devrieze)
* doc/introduction.tex: Likewise

SVN Revision: 544
2006-04-23 16:55:25 +00:00
Alexey Shchepin 1694a6a756 * src/configure: Removed '==' bashism (thanks to Magnus Henoch)
* src/aclocal.m4: Likewise

SVN Revision: 543
2006-04-23 15:35:14 +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
Mickaël Rémond c86275ce9d * src/ejabberd_sm.erl: Now delivering messages to all resources with
max equal priority when this priority is non-negative.

SVN Revision: 541
2006-04-23 09:31:54 +00:00
Mickaël Rémond dc198cf08e * src/msgs/de.msg: Updated (thanks to Nikolaus Polak)
SVN Revision: 540
2006-04-23 09:26:41 +00:00
Mickaël Rémond d5309f0af4 * src/msgs/fr.msg: updated
SVN Revision: 539
2006-04-23 08:56:46 +00:00
Alexey Shchepin 8eb823abbb * 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: 538
2006-04-22 04:02:42 +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
Mickaël Rémond e0c700e725 * doc/guide.tex: Updated (SASL anonymous and anonymous login).
SVN Revision: 536
2006-04-20 22:12:09 +00:00
Mickaël Rémond 8688bc508f * src/ejabberd_auth.erl: Bugfix: We now are forced to check is an
anonymous user is log under a given user name before trying to register
it.

SVN Revision: 535
2006-04-20 17:51:29 +00:00
Mickaël Rémond 3cce56b9f8 * src/ejabberd.cfg.example: Update of the example for anonymous.
Removed unnecessary parameter.
* src/ejabberd_auth_anonymous.erl: Removed unnecessary parameter
and bugfix.

SVN Revision: 534
2006-04-20 15:42:51 +00:00
Alexey Shchepin 4797060eb9 * src/msgs/pl.msg: Updated (thanks to Andrzej Smyk)
SVN Revision: 533
2006-04-18 22:28:30 +00:00
Alexey Shchepin 15a714ae68 * src/xml_stream.erl: Cleanup
* src/ejabberd_service.erl: Updated to use ejabberd_receiver

SVN Revision: 532
2006-04-13 02:08:24 +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 681f0b9567 * src/msgs/es.msg: Updated (thanks to Badlop)
* src/ejabberd.cfg.example: Updated (thanks to Badlop)

* doc/guide.tex: Updated (thanks to Badlop)

SVN Revision: 530
2006-04-11 03:16:34 +00:00
Mickaël Rémond 49917e284e * src/mod_pubsub/mod_pubsub.erl: Fixed pubsub root node creation
(conflict error was send on node creation)

SVN Revision: 529
2006-04-07 13:39:48 +00:00
Alexey Shchepin 0e1f86e1f5 * 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: 528
2006-04-07 00:51:53 +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
Alexey Shchepin a5a978946d * src/expat_erl.c: Use binaries for CDATA
* src/xml.erl: Likewise

SVN Revision: 526
2006-04-05 23:56:16 +00:00
Alexey Shchepin ed43f8024c * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

* src/mod_configure.erl: Updated translation strings (thanks to
Sergei Golovan)
* src/web/ejabberd_web_admin.erl: Likewise

* src/ejabberd_s2s_in.erl: Changed a path to PKIX includes (thanks
to Sergei Golovan)

SVN Revision: 525
2006-04-01 21:43:52 +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
Mickaël Rémond eabf8d1c6c * src/ejabberd_sm.erl: Remove unnecessary use delete_object,
which can, in some context break indexes, when used on non bag table.

SVN Revision: 519
2006-03-16 09:59:45 +00:00
Alexey Shchepin 7278a606a8 * src/ejabberd_c2s.erl: Bugfix
SVN Revision: 518
2006-03-16 01:02:44 +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 4f2a355408 * src/mod_muc/mod_muc_room.erl: Bugfix
SVN Revision: 516
2006-03-06 02:30:15 +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
Mickaël Rémond 804c32c100 * src/ejabberd_logger_h.erl: reopen-log function now rename the log
file if it has not been already renamed by a logrotate process.  This
change allow ejabberd administrators to rotate log files on Windows
(EJAB-52).

SVN Revision: 514
2006-03-04 17:33:23 +00:00
Alexey Shchepin 17420e058b * src/web/ejabberd_web_admin.erl: Added a interface for node
updating
* src/ejabberd_update.erl: Added function update_info/0

SVN Revision: 513
2006-02-27 04:47:30 +00:00
Alexey Shchepin 20d049fe28 * src/web/ejabberd_web_admin.erl: Added a interface for node
updating
* src/ejabberd_update.erl: Added function update_info/0

SVN Revision: 512
2006-02-27 04:43:16 +00:00
Alexey Shchepin 51c4ab8351 * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

* contrib/extract_translations/extract_translations.erl: Minor
update (thanks to Sergei Golovan)

* src/ejabberd_zlib/Makefile.win32: Zlib support for Windows build
(thanks to Sergei Golovan)
* src/Makefile.win32: Likewise
* src/configure.erl: Likewise

SVN Revision: 511
2006-02-25 19:48:17 +00:00
Alexey Shchepin 80181dc618 * src/ejabberd_ctl.erl: Added API for virtual host specific
commands, removed registered-users command
* src/ejabberd_auth.erl: Added processing of registered-users
command
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_ldap.erl: Likewise
* src/ejabberd_auth_odbc.erl: Likewise
* src/ejabberd_app.erl: Added inititalization of ejabberd_ctl
* src/ejabberd_sm.erl: Minor update

SVN Revision: 510
2006-02-20 04:07:42 +00:00
Alexey Shchepin 0fd01cfff8 * src/mod_irc/mod_irc_connection.erl: Added handling for "%", "&"
and "~" prefixes in IRC nicknames (thanks to Vladimir Kulev)

SVN Revision: 509
2006-02-18 20:05:05 +00:00
Alexey Shchepin 44fdd72041 * src/mod_irc/mod_irc_connection.erl: Added /msg and /ctcp
commands, improved handling of channel topic and kick, mirc colors
now filtered, other minor improvements (thanks to Oleg
V. Motienko)

* src/mod_configure.erl: Improved strings (thanks to Sander
Devrieze)
* 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: 508
2006-02-18 19:56:16 +00:00
Alexey Shchepin 0234b83be4 * src/mod_service_log.erl: Bugfix (thanks to Badlop)
* src/jd2ejd.erl: Use mod_vcard_odbc if it is loaded (thanks to
Tomasz Sterna)

* src/ejabberd_sm.erl: Added a few ejabberdctl commands

* src/ejabberd_ctl.erl: New interface for command registration

SVN Revision: 507
2006-02-15 04:15:54 +00:00
Alexey Shchepin 904300ce04 * src/ejabberd_ctl.erl: Partially rewritten
* src/ejabberd_ctl.hrl: Definitions of exit status codes moved
here

SVN Revision: 506
2006-02-13 04:05:13 +00:00
Alexey Shchepin 3eb1b59e64 * src/ejabberd_ctl.erl: Partially rewritten
SVN Revision: 505
2006-02-13 04:02:59 +00:00
Alexey Shchepin 73073d4af5 * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 504
2006-02-12 18:40:03 +00:00
Alexey Shchepin 6eac737807 * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 503
2006-02-11 23:55:21 +00:00
Alexey Shchepin b8e99a3c05 * src/odbc/ejabberd_odbc.erl: Reconnect on ODBC connection closing
SVN Revision: 502
2006-02-08 03:55:30 +00:00
Mickaël Rémond 2f0cf8bce8 * src/ejabberd_auth.erl: plugin authentication modules can now
be used in the configuration file: {auth_method, module} will
now use the module ejabberd_auth_module.erl for authentication.
(EJAB-45)

SVN Revision: 501
2006-02-07 17:35:32 +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
Alexey Shchepin cf10843071 * src/ejabberd_auth_odbc.erl: Added ejabberd_odbc_sup to ejabberd
supervision tree

SVN Revision: 499
2006-02-03 04:41:03 +00:00
Alexey Shchepin dc57e75e8f * src/web/ejabberd_http.erl: Authentication check moved to
ejabberd_web.erl
* src/web/ejabberd_web.erl: Likewise

* src/web/Makefile.in: Added ejabberd_http.hrl dependency

* src/web/ejabberd_http_poll.erl: Updated to use {active, once}
socket mode

* src/mod_irc/mod_irc.erl: Updated to use gen_server behaviour and
ejabberd supervision tree
* src/mod_irc/mod_irc_connection.erl: Likewise

SVN Revision: 498
2006-02-03 03:28:15 +00:00
Mickaël Rémond facefdb6e4 --prefix option can now override the default install dir (EJAB-43)
SVN Revision: 497
2006-02-02 16:59:38 +00:00
Alexey Shchepin 971001e7aa * src/mod_pubsub/mod_pubsub.erl: Updated to use gen_server
behaviour and ejabberd supervision tree

* src/mod_muc/mod_muc.erl: Added a supervisor for conference room
processes
* src/mod_muc/mod_muc_room.erl: Likewise

SVN Revision: 496
2006-02-02 05:00:27 +00:00
Alexey Shchepin 50f44530d2 * src/odbc/pg.sql: Fixed syntax error
* src/ejabberd_router.erl: Updated to use gen_server behaviour
* src/ejabberd_sm.erl: Likewise
* src/ejabberd_s2s.erl: Likewise
* src/gen_iq_handler.erl: Likewise

* src/ejabberd_sup.erl: Added supervisor for ejabberd_receiver
* src/ejabberd_receiver.erl: Updated

SVN Revision: 495
2006-01-29 04:38:31 +00:00
Alexey Shchepin ef456ab645 * 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: 494
2006-01-27 05:02:33 +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 ef0b3ab24c * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 490
2006-01-24 21:47:53 +00:00
Alexey Shchepin 2d7fbf3964 Fixed ChangeLog
SVN Revision: 489
2006-01-24 02:55:44 +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
Mickaël Rémond 1295893864 * src/ejabberd_receiver.erl: Added new debugging trace: It is now
possible to dump the XML stream received from a client (usefull for
client debugging).

SVN Revision: 487
2006-01-20 16:51:58 +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
Mickaël Rémond c7bafe0056 * src/odbc/ejabberd_odbc.erl: Added a way to retry database
connection connect for 5 minutes when the connection is lost. No further
connection is retry after 5 minutes (EJAB-22 & EJAB-25)
* src/odbc/ejabberd_odbc_sup.erl: likewise

SVN Revision: 485
2006-01-13 18:05:10 +00:00
Mickaël Rémond 54a1ced6f6 * src/odbc/ejabberd_odbc.erl: underscore and percent are now only
escaped in like queries. MySQL where not escaping those escaped
characters in other context (EJAB-24)
* src/mod_vcard_odbc.erl: likewise.
* src/odbc/mysql.sql: Fixed MySQL database creation script: Was
not properly working with all MySQL version.

SVN Revision: 484
2006-01-13 10:59:52 +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
Mickaël Rémond 8401a5ac55 Native MySQL support. The Erlang MySQL module is needed:
http://support.process-one.net/doc/display/CONTRIBS/Yxa

SVN Revision: 482
2006-01-02 17:39:04 +00:00
Alexey Shchepin 7ee3e45df1 * src/ejabberd_logger_h.erl: Speed optimizations
SVN Revision: 481
2005-12-24 02:40:35 +00:00
Mickaël Rémond 784edef4b6 Added missing file.
SVN Revision: 480
2005-12-23 13:52:39 +00:00
Alexey Shchepin 254a8c1b60 * src/Makefile.in: Clean results of ASN.1 compiler (thanks to
Sergei Golovan)

SVN Revision: 479
2005-12-22 14:48:01 +00:00
Alexey Shchepin 3cbed307bc * src/win32/ejabberd.nsh: Removed (thanks to Sergei Golovan)
SVN Revision: 478
2005-12-22 13:44:58 +00:00
Alexey Shchepin 08af86cb11 * src/Makefile.win32: Updated (thanks to Sergei Golovan)
* src/configure.erl: Likewise
* src/win32/CheckReqs.ini: Likewise
* src/win32/CheckReqs1.ini: Likewise
* src/win32/CheckReqs1H.ini: Likewise
* src/win32/ejabberd.nsh: Likewise
* src/win32/ejabberd.nsi: Likewise

SVN Revision: 477
2005-12-22 13:35:54 +00:00
Mickaël Rémond 15e747782a * src/odbc/ejabberd_odbc.erl: Added error message on ODBC
connection to help ODBC configuration troubleshooting.

SVN Revision: 476
2005-12-22 09:40:21 +00:00
Alexey Shchepin 0035c63399 * src/odbc/ejabberd_odbc.erl: Bugfix
SVN Revision: 475
2005-12-22 05:38:04 +00:00
Mickaël Rémond 559b5cae14 * src/odbc/mysql.sql: Database description for MySQL Database
4.1 (Max version, with Innodb)
* src/ejabberd_auth_odbc.erl: MySQL ODBC support.
* src/mod_offline_odbc.erl: likewise
* src/mod_vcard_odbc.erl: likewsie
* src/mod_roster_odbc.erl: likewise
* src/odbc/ejabberd_odbc.erl: likewise
* src/mod_last_odbc.erl: likewise

SVN Revision: 474
2005-12-21 16:10:56 +00:00
Mickaël Rémond c275a24597 Documentation update, code clean-up and Makefile improvement.
SVN Revision: 473
2005-12-16 16:33:42 +00:00
Alexey Shchepin 52fcdc716d * doc/features.tex: Added feature sheet (Thanks to Sander
Devrieze)

SVN Revision: 472
2005-12-15 23:31:49 +00:00
Mickaël Rémond 9064851ab5 Documentation updates for actual ejabberd 1.0.0 release.
SVN Revision: 471
2005-12-15 08:57:33 +00:00
Alexey Shchepin 5f2de53f01 * src/mod_irc/iconv_erl.c: Bugfix (thanks to Tomas Janousek)
SVN Revision: 470
2005-12-14 01:32:48 +00:00
Alexey Shchepin 689842edf8 * src/win32/ejabberd.nsi: Updated (thanks to Maxim Ryazanov)
SVN Revision: 468
2005-12-13 20:31:22 +00:00
Alexey Shchepin aae0124f61 * src/win32/ejabberd.nsi: Updated (thanks to Sergei Golovan)
SVN Revision: 467
2005-12-13 20:29:00 +00:00
Alexey Shchepin 736455d974 * src/ejabberd.hrl: Updated version
* src/ejabberd.app: Likewise
* doc/version.tex: Likewise

SVN Revision: 464
2005-12-13 17:25:08 +00:00
Mickaël Rémond 054e029bf7 Fixed typos
SVN Revision: 463
2005-12-13 17:18:33 +00:00
Mickaël Rémond 8bc7f768de fixed typos:
SVN Revision: 462
2005-12-13 16:53:26 +00:00
Mickaël Rémond 7e70badf23 * doc/release_notes_1.0.0.txt: Added preliminary version of
ejabberd 1.0.0 release notes.
* doc/guide.html: Generated the updated HTML version of the
documentation.

SVN Revision: 461
2005-12-13 16:14:02 +00:00
Mickaël Rémond c221450831 Fixed version number
SVN Revision: 460
2005-12-12 11:39:31 +00:00
Alexey Shchepin 626394044d * src/mod_roster.erl: Workaround for gateway subscriptions now
should be enabled with --enable-roster-gateway-workaround
* src/mod_roster_odbc.erl: Likewise
* src/configure.ac: Likewise
* src/Makefile.in: Likewise

SVN Revision: 459
2005-12-11 19:48:31 +00:00
Alexey Shchepin ad0f691472 * src/ejabberd_service.erl: Added logging of termination
SVN Revision: 458
2005-12-10 18:42:08 +00:00
Alexey Shchepin affa42b92b * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

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

SVN Revision: 457
2005-12-10 17:47:00 +00:00
Mickaël Rémond 6d091308a2 * contribs/contrib/extract_translations/prepare-translation.sh:
Small improvements.
* src/msgs/fr.msg: Updated

SVN Revision: 456
2005-12-08 21:59:49 +00:00
Alexey Shchepin e00df63715 * src/msgs/pl.msg: Fixed syntax error
SVN Revision: 455
2005-12-07 17:29:50 +00:00
Alexey Shchepin 56d62e11a8 * src/mod_offline.erl: Don't store headline messages
* src/mod_offline_odbc.erl: Likewise

SVN Revision: 454
2005-12-07 13:01:33 +00:00
Alexey Shchepin 4f48b839c4 * doc/guide.tex: Updated
SVN Revision: 453
2005-12-06 20:59:32 +00:00
Alexey Shchepin ab2b0b91f1 * doc/guide.tex: Updated
SVN Revision: 452
2005-12-06 20:52:58 +00:00
Alexey Shchepin 5ec3db235e * doc/guide.tex: Updated
SVN Revision: 451
2005-12-06 20:51:16 +00:00
Alexey Shchepin 2bf32ab5a5 * doc/guide.tex: Updated
SVN Revision: 450
2005-12-06 20:48:17 +00:00
Alexey Shchepin c321eda0b3 * doc/guide.tex: Updated
SVN Revision: 449
2005-12-06 20:03:21 +00:00
Alexey Shchepin 359f15ffb9 * src/ejabberd.cfg.example: Updated
* src/Makefile.*: Can now be build when the Erlang environment is
not Erlang/OTP but the Erlang REPOS CDROM.  Still compatible with
standard Erlang/OTP install
* aclocal.m4: Likewise
* src/Makefile.*: Can now be build with Erlang debug_info with
'make debug=true'

SVN Revision: 448
2005-12-06 19:32:50 +00:00
Alexey Shchepin aa7431fab0 * src/msgs/pt-br.msg: Updated (thanks to Victor Hugo dos Santos)
* src/msgs/pl.msg: Updated (thanks to Andrzej Smyk)

* src/msgs/sv.msg: Updated (thanks to Magnus Henoch)

* src/msgs/de.msg: Updated (thanks to Patrick Dreker)

SVN Revision: 447
2005-12-06 19:16:29 +00:00
Mickaël Rémond 7c76f7c85e doc/yozhikheader.png: Added feature sheet header (Thanks to Sander
Devrieze)

SVN Revision: 446
2005-11-30 13:51:34 +00:00
Mickaël Rémond f89f621671 Documentation update
SVN Revision: 445
2005-11-28 10:55:45 +00:00
Alexey Shchepin 53ddd788ef * src/web/ejabberd_http.erl: Now web interface is compliant to
XHTML 1.0 Transitional (thanks to Sander Devrieze)
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 444
2005-11-26 18:56:39 +00:00
Alexey Shchepin 6d0fa1b95c * doc/Makefile: Now really added
SVN Revision: 443
2005-11-24 23:01:48 +00:00
Alexey Shchepin 816d5474f8 * src/mod_roster.erl: The "id" attribute of roster push packet was
missed (thanks to Maxim Ryazanov)
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 442
2005-11-22 18:43:06 +00:00
Alexey Shchepin 3fdf05a507 * src/web/ejabberd_web_admin.erl: Fixed encoding of user names in
URLs

* src/web/ejabberd_http.erl: Added url_encode function from yaws

SVN Revision: 441
2005-11-22 18:25:02 +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
Mickaël Rémond daba3b2012 Added prepare-translation.sh wrapper to extract_translation.erl (Thanks to Badlop)
SVN Revision: 439
2005-11-19 17:30:28 +00:00
Mickaël Rémond 514541e82a Added wrapper to extract_translation.erl
SVN Revision: 438
2005-11-19 17:23:35 +00:00
Alexey Shchepin 2732b2851c * src/mod_vcard.erl: Fixed xmlns in disco items replies (thanks to
Maxim Ryazanov)
* src/mod_vcard_ldap.erl: Likewise
* src/mod_vcard_odbc.erl: Likewise

SVN Revision: 437
2005-11-19 01:20:05 +00:00
Alexey Shchepin 92bac4761b * src/tls/Makefile.in: Use CPPFLAGS (thanks to Magnus Henoch)
SVN Revision: 436
2005-11-19 00:57:29 +00:00
Alexey Shchepin c6441edc7a * src/ejabberd_s2s_in.erl: Support for dNSName certificate field
and DNS name matching
* src/XmppAddr.asn1: Moved here from src/tls/XmppAddr.asn1
* src/tls/XmppAddr.asn1: Likewise    
* src/Makefile.in: Updated
* src/tls/Makefile.in: Updated

SVN Revision: 435
2005-11-17 05:29:33 +00:00
Alexey Shchepin 57a6d0e1d3 * src/odbc/ejabberd_odbc.erl: Support for mnesia-like transaction
interface
* src/mod_roster_odbc.erl: Updated to use
ejabberd_odbc:sql_transaction/2

SVN Revision: 434
2005-11-16 02:59:05 +00:00
Alexey Shchepin bbfd58a822 * src/ejabberd_s2s_out.erl: Fixed invalid behaviour upon
connecting to host with invalid domain
* src/ejabberd_s2s.erl: Likewise

SVN Revision: 433
2005-11-12 03:42:12 +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 eb1b33c5a4 * src/mod_disco.erl: Fixed extra_domains option processing
SVN Revision: 431
2005-11-03 19:58:58 +00:00
Alexey Shchepin f6343f01f7 * src/ejabberd_s2s_out.erl: Support for STARTTLS+SASL EXTERNAL
* src/ejabberd_s2s_in.erl: Likewise
* src/tls/tls.erl: Likewise
* src/tls/tls_drv.c: Likewise
* src/tls/XmppAddr.asn1: Likewise
* src/tls/Makefile.in: Likewise

SVN Revision: 430
2005-11-03 05:04:54 +00:00
Alexey Shchepin 2efda30fdc * src/mod_disco.erl: Minor fix
SVN Revision: 429
2005-10-30 20:47:26 +00:00
Alexey Shchepin a8f5d4cd3d * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 428
2005-10-29 20:14:39 +00:00
Alexey Shchepin 144f9f09e7 * src/tls/tls.erl: Accept {error,already_loaded} from
erl_ddll:load_driver/2
* src/stringprep/stringprep.erl: Likewise
* src/mod_irc/iconv.erl: Likewise
* src/ejabberd_app.erl: Likewise

SVN Revision: 427
2005-10-25 02:19:01 +00:00
Alexey Shchepin 1433dafe6b * src/tls/tls_drv.c: Support for "connect" method
* src/tls/tls.erl: Likewise

* src/ejabberd_s2s_in.erl: Support for STARTTLS+Dialback
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd_receiver.erl: Added a few hacks ({active,once} mode
should be used instead of recv/3 call to avoid them)
* src/ejabberd_config.erl: Added s2s_use_starttls and s2s_certfile
options
* src/ejabberd.cfg.example: Likewise

SVN Revision: 426
2005-10-25 01:08:37 +00:00
Alexey Shchepin 6309f41b9a * src/ejabberd_app.erl: Try to load tls_drv at startup to avoid
unloading of libssl (thanks to Brian Campbell)

SVN Revision: 425
2005-10-21 21:22:00 +00:00
Alexey Shchepin 1a015a3cf9 * src/odbc/pg.sql: Added spool.seq field for offline messages
sorting
* src/mod_offline_odbc.erl: Likewise

SVN Revision: 424
2005-10-19 23:00:17 +00:00
Alexey Shchepin c78927ecf7 * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 423
2005-10-18 20:13:33 +00:00
Alexey Shchepin 2a9618aeb4 * src/gen_iq_handler.erl: Bugfix
SVN Revision: 422
2005-10-16 20:42:24 +00:00
Alexey Shchepin 590b2c9348 * src/ejabberd_auth_odbc.erl: Minor fix
* src/odbc/ejabberd_odbc.erl: Updated pgsql support

SVN Revision: 421
2005-10-15 19:50:02 +00:00
Alexey Shchepin f85767fae4 * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 420
2005-10-15 14:41:48 +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 a773fb0a25 * src/odbc/ejabberd_odbc.erl: Experimental support for pgsql
library

SVN Revision: 418
2005-10-13 01:36:07 +00:00
Alexey Shchepin b89eb4a52d * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 417
2005-10-13 01:29:21 +00:00
Alexey Shchepin 66fec72242 * src/mod_roster_odbc.erl: Bugfix
SVN Revision: 416
2005-10-12 23:10:54 +00:00
Alexey Shchepin a024836a85 Fixed mod_vcard_odbc.erl SVN properties
SVN Revision: 415
2005-10-07 00:00:44 +00:00
Alexey Shchepin 108b2646ee * src/ejd2odbc.erl: Added vCard converter
* src/mod_vcard_odbc.erl: vCard support via ODBC

* src/odbc/pg.sql: Updated

SVN Revision: 414
2005-10-06 23:57:34 +00:00
Alexey Shchepin 0291cac0f5 * src/web/ejabberd_web_admin.erl: Updated API for better
integration with J-EAI web interface

* src/mod_shared_roster.erl: Now possible to specify all users on
virtual host in group
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 413
2005-09-29 01:04:24 +00:00
Alexey Shchepin 0b51f0488f * src/jlib.erl: Bugfix
SVN Revision: 412
2005-09-15 18:32:05 +00:00
Alexey Shchepin c7e04260f4 * src/ejd2odbc.erl: Updated
SVN Revision: 411
2005-09-10 18:03:48 +00:00
Alexey Shchepin d630180717 * src/ejd2odbc.erl: Updated
SVN Revision: 410
2005-09-10 17:01:30 +00:00
Alexey Shchepin a83c99805a * src/mod_disco.erl: Disco publishing support (thanks to Magnus
Henoch)

SVN Revision: 409
2005-09-04 03:31:23 +00:00
Alexey Shchepin 83191198a1 * src/mod_disco.erl: Functions register_sm_feature and
register_sm_node replaced with hooks (thanks to Sergei Golovan)
* src/mod_vcard.erl: 
* src/mod_vcard_ldap.erl: 

* src/mod_disco.erl: Now mod_disco doesn't depend on mod_configure
(thanks to Sergei Golovan)
* src/mod_configure.erl: Likewise

SVN Revision: 408
2005-09-04 01:58:47 +00:00
Alexey Shchepin 06a0e1df14 * src/ejd2odbc.erl: Converter from mnesia to ODBC
* src/mod_offline_odbc.erl: Minor fix

SVN Revision: 407
2005-08-29 19:00:10 +00:00
Alexey Shchepin a884ba4e8a * src/mod_vcard_ldap.erl: Bugfix
* src/mod_vcard.erl: Bugfix

* src/ejabberd_auth_odbc.erl: Bugfix

* doc/dev.tex: Updated

SVN Revision: 406
2005-08-25 20:48:45 +00:00
Alexey Shchepin ee3551db4b * src/cyrsasl_digest.erl: Fixed challenge/response parsing (thanks
to Martin Pokorny)

SVN Revision: 405
2005-08-10 23:29:16 +00:00
Alexey Shchepin 9085e7f022 * src/msgs/pl.msg: Updated (thanks to Andrew Smyk)
SVN Revision: 404
2005-08-06 22:35:47 +00:00
Alexey Shchepin 3603330387 * src/web/ejabberd_web_admin.erl: Bugfix (thanks to Badlop)
SVN Revision: 403
2005-08-06 22:23:53 +00:00
Alexey Shchepin 1baf1551be * src/win32/inetrc: Added (thanks to Sergei Golovan)
* src/Makefile.win32: Updated (thanks to Sergei Golovan)
* src/win32/ejabberd.cfg: Likewise
* src/win32/ejabberd.nsi: Likewise

* doc/guide.tex: Updated

* src/ejabberd.hrl: Updated version

SVN Revision: 402
2005-08-05 20:49:24 +00:00
Mickaël Rémond 3e904a1bb8 Release 0.9.8
SVN Revision: 399
2005-08-01 22:06:46 +00:00
Mickaël Rémond fffde3d7c3 Final release note after many fixes from the ejabberd Chatroom and
StPeter

SVN Revision: 398
2005-08-01 22:05:27 +00:00
Alexey Shchepin ef053fd7b7 * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

SVN Revision: 397
2005-08-01 21:00:20 +00:00
Mickaël Rémond 9e90483263 Wrong Process-one URL
SVN Revision: 396
2005-08-01 20:56:52 +00:00
Mickaël Rémond bac37de78e More fixes from Badlop
SVN Revision: 395
2005-08-01 20:54:25 +00:00
Mickaël Rémond f33c35e658 Fixed some english mistakes.
SVN Revision: 394
2005-08-01 20:45:54 +00:00
Alexey Shchepin 835763013d * src/msgs/es.msg: Updated (thanks to Badlop)
SVN Revision: 393
2005-08-01 18:54:08 +00:00
Alexey Shchepin c0a5ba816a * src/msgs/nl.msg: Updated (thanks to Sander Devrieze)
SVN Revision: 392
2005-08-01 18:19:46 +00:00
Mickaël Rémond ac8eb35135 Added some references at the end of the release notes (migration,
tutorial and feature sheet)

SVN Revision: 391
2005-08-01 17:23:55 +00:00
Mickaël Rémond 8f8a732712 Updated to mention, that the 1.0 release is close and that the ejabberd
Linux installer include ASN1 modules.

SVN Revision: 390
2005-08-01 15:40:58 +00:00
Mickaël Rémond 385795b3c9 Added release notes for ejabberd 0.9.8 release.
SVN Revision: 389
2005-08-01 15:37:30 +00:00
Mickaël Rémond 4a5d481ad7 Updated French translation
SVN Revision: 388
2005-08-01 14:38:19 +00:00
Mickaël Rémond 24deabc58c Updated French translation
SVN Revision: 387
2005-08-01 14:36:42 +00:00
Alexey Shchepin 081be192d3 * src/ejabberd_config.erl: Added host_config option
* doc/guide.tex: Updated

* src/ejabberd_auth_ldap.erl: Bugfix

SVN Revision: 386
2005-07-31 19:51:52 +00:00
Alexey Shchepin 84b057c607 * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

SVN Revision: 385
2005-07-31 18:10:41 +00:00
Alexey Shchepin b0c1d52051 * src/msgs/de.msg: Updated (thanks to Torsten Werner)
SVN Revision: 384
2005-07-31 01:27:19 +00:00
Alexey Shchepin 2005205d24 * src/web/ejabberd_web_admin.erl: Fixed CSS style sheet to be
standards compliant (thanks to Sander Devrieze)

SVN Revision: 383
2005-07-31 01:18:17 +00:00
Alexey Shchepin 8f90927d83 * src/web/ejabberd_web_admin.erl: Added "Virtual Hosts" page
SVN Revision: 382
2005-07-29 20:34:57 +00:00
Alexey Shchepin 9da4594fd0 Renamed route_packet hook to filter_packet
SVN Revision: 381
2005-07-27 00:59:35 +00:00
Alexey Shchepin e9e1893b01 * src/ejabberd_router.erl: Added route_packet hook
SVN Revision: 380
2005-07-27 00:54:53 +00:00
Alexey Shchepin 02d3151ee7 * src/jd2ejd.erl: Updated to work with ODBC
* src/mod_roster_odbc.erl: Updated

* src/mod_offline_odbc.erl: Bugfix

* src/mod_last_odbc.erl: Bugfix

SVN Revision: 379
2005-07-26 03:04:26 +00:00
Alexey Shchepin d520f35819 * src/mod_pubsub/mod_pubsub.erl: Updated to J-EAI version
SVN Revision: 378
2005-07-20 03:09:34 +00:00
Alexey Shchepin 2d09cf8a39 * src/acl.erl: Slightly changed "access" option processing
SVN Revision: 377
2005-07-14 23:48:57 +00:00
Alexey Shchepin 9528651c35 * src/mod_disco.erl: Fixed processing of host features and
extra_domains option

SVN Revision: 376
2005-07-14 23:12:20 +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 37bf811f4b * src/ejabberd_app.erl: Bugfix
SVN Revision: 373
2005-07-03 01:44:13 +00:00
Alexey Shchepin b58c0b7b23 * src/ejabberd_config.erl: Bugfix
SVN Revision: 372
2005-07-03 00:16:34 +00:00
Alexey Shchepin d6d51b0fb7 * src/mod_offline.erl: Bugfix
SVN Revision: 371
2005-06-30 11:29:04 +00:00
Alexey Shchepin 4098c3ecba * (all): Enhanced virtual hosting support
SVN Revision: 370
2005-06-20 03:18:13 +00:00
Alexey Shchepin cb90075327 * src/web/ejabberd_web_admin.erl: Bugfix
SVN Revision: 369
2005-05-27 22:52:50 +00:00
Mickaël Rémond 9304d91834 Added 0.9.1 release note that was in the release ejabberd-0.9.1 version.
SVN Revision: 368
2005-05-25 13:35:35 +00:00
Alexey Shchepin 33bb81d102 * src/msgs/pt-br.msg: New Brazilian Portuguese translation (thanks
to Felipe Brito Vasconcellos)

SVN Revision: 367
2005-05-25 00:28:22 +00:00
Alexey Shchepin 01d87e7ffd Added text/html mime type to dev.html and guide.html
SVN Revision: 365
2005-05-24 12:32:11 +00:00
Alexey Shchepin c5a686cb29 Testing SVN/DAV access
SVN Revision: 364
2005-05-23 21:58:47 +00:00
thierry 4b2236185b testing webdav
SVN Revision: 363
2005-05-23 21:53:42 +00:00
Alexey Shchepin 4c90299494 * src/msgs/fr.msg: Updated (thanks to Mickael Remond)
SVN Revision: 360
2005-05-23 20:28:58 +00:00
Alexey Shchepin 85bde6e50f * src/odbc/Makefile.in: Added
* src/configure.ac: Updated for odbc support
* src/Makefile.in: Likewise

* src/aclocal.m4: Bugfix

SVN Revision: 359
2005-05-23 20:27:17 +00:00
Alexey Shchepin dbb248247b * src/mod_last_odbc.erl: Added store_last_info/4 function (thanks
to Sergei Golovan)
* src/mod_last.erl: Likewise

* src/jd2ejd.erl: Support for exporting iq:last information,
better error handling (thanks to Sergei Golovan)

* src/ejabberd_ctl.erl: Added "import-file" and "import-dir"
commands (thanks to Sergei Golovan)

SVN Revision: 358
2005-05-23 19:47:57 +00:00
Mickaël Rémond 6b1e56f786 Updated French translation
SVN Revision: 357
2005-05-23 19:46:00 +00:00
Alexey Shchepin 9c556685fe * doc/guide.tex: Updated (thanks to Sergei Golovan)
* doc/dev.tex: Likewise
* doc/disco.png: Likewise
* doc/discorus.png: Likewise
* doc/webadmin.png: Likewise
* doc/webadminru.png: Likewise

SVN Revision: 356
2005-05-23 19:33:52 +00:00
Alexey Shchepin 0625a03385 * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

SVN Revision: 355
2005-05-23 19:12:30 +00:00
Alexey Shchepin 820c78484a * src/web/ejabberd_web_admin.erl: Updated CSS, added modules
management (thanks to Sergei Golovan)

* src/gen_mod.erl: Added function loaded_modules_with_opts/0, new
API for module stopping (thanks to Sergei Golovan)
* src/mod_muc/mod_muc.erl: Moved a process name to a macros,
updated module stopping (thanks to Sergei Golovan)
* src/mod_irc/mod_irc.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/mod_announce.erl: Updated module stopping (thanks to Sergei
Golovan)
* src/mod_echo.erl: Likewise
* src/mod_offline.erl: Likewise

SVN Revision: 354
2005-05-23 00:30:29 +00:00
Alexey Shchepin 94ed3740d9 * src/web/ejabberd_http.erl: "Connection:" header value now
matched case-insensitive, and returned to client, replaced
duplicate is_space($\r) with is_space($\t) (thanks to Maxim
Ryazanov)

SVN Revision: 353
2005-05-22 23:29:54 +00:00
Alexey Shchepin 9f27556a01 * src/mod_pubsub/mod_pubsub.erl: Fixed XML element name for
pubsub#event namespace (thanks to Magnus Henoch)

SVN Revision: 352
2005-05-21 20:21:41 +00:00
Alexey Shchepin b43093086d * src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

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

SVN Revision: 351
2005-05-21 19:44:37 +00:00
Alexey Shchepin 77f681b320 * src/mod_pubsub/mod_pubsub.erl: Now possible to subscribe to a
pubsub node with a JID that includes a resource (thanks to Martijn
van Beers)

* src/stringprep/uni_parse2.tcl: Bugfix
* src/stringprep/stringprep_drv.c: Likewise
* src/stringprep/uni_norm.c: Regenerated

SVN Revision: 350
2005-05-18 23:47:33 +00:00
Alexey Shchepin 47b5e514dc * src/mod_irc/mod_irc_connection.erl: Added support for WHOIS
requests and reply to USERINFO (thanks to Oleg V. Motienko)

SVN Revision: 349
2005-05-17 22:35:16 +00:00
Alexey Shchepin fb870ca15d * src/stringprep/stringprep_drv.c: Bugfix
SVN Revision: 348
2005-05-17 12:51:47 +00:00
Alexey Shchepin d7a6fcb712 * src/win32/ejabberd.cfg: Updated (thanks to Sergei Golovan)
* src/odbc/Makefile.win32: Added (thanks to Sergei Golovan)

* src/Makefile.win32: Updated (thanks to Sergei Golovan)

* src/jd2ejd.erl: Fixed private xml setting

* src/mod_last.erl: Bugfix
* src/mod_last_odbc.erl: Likewise

* src/mod_pubsub/mod_pubsub.erl: Fixed service stopping

SVN Revision: 347
2005-05-15 23:03:25 +00:00
Alexey Shchepin a4507b8b6f * src/mod_muc/mod_muc_room.erl: Fixed bug with storing
affiliations of invited users in members-only room (thanks to
Sergei Golovan)

SVN Revision: 346
2005-05-09 19:38:16 +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 4f7359298e * src/web/ejabberd_web_admin.erl: Images now specified via CSS,
design slightly updated, added last activity statistics (thanks to
Sergei Golovan)

SVN Revision: 344
2005-05-08 23:39:46 +00:00
Alexey Shchepin 4eca697b2d * src/stringprep/stringprep_drv.c: Added check for bidi
* src/stringprep/uni_parse.tcl: Now handle all Unicode code points
up to U+10FFFF
* src/stringprep/uni_parse2.tcl: Likewise
* src/stringprep/uni_data.c: Regenerated
* src/stringprep/uni_norm.c: Likewise

SVN Revision: 343
2005-05-07 01:21:39 +00:00
Alexey Shchepin 1a4c851c7c * src/stringprep/uni_norm.c: Regenerated with Unicode 3.2 tables
as required by RFC3454

* src/stringprep/uni_parse2.tcl: Bugfixes

* src/stringprep/stringprep_drv.c: Bugfixes, added hangul
composition

SVN Revision: 342
2005-05-06 01:38:05 +00:00
Mickaël Rémond e2ca6fc7f2 ChangeLog updated
SVN Revision: 341
2005-05-05 13:16:10 +00:00
Mickaël Rémond f53fdb9975 Adding missing 0.9 fields in fr.msg
SVN Revision: 340
2005-05-05 13:11:18 +00:00
Alexey Shchepin 22ca77c1c2 * src/mod_muc/mod_muc_room.erl: Store ban reasons for outcast
items, updated affiliation matching rules to latest JEP-0045

SVN Revision: 339
2005-05-03 23:07:14 +00:00
Alexey Shchepin fd118302bc * src/mod_muc/mod_muc_room.erl: Updated changing roles and
affiliations tables to latest JEP-0045

SVN Revision: 338
2005-05-02 21:59:39 +00:00
Alexey Shchepin bfe18dd116 * src/msgs/sw.msg: Renamed to sv.msg
* src/msgs/sv.msg: Likewise

SVN Revision: 337
2005-05-01 21:27:50 +00:00
Mickaël Rémond b556c41d39 src/msgs/fr.msg: Updated
SVN Revision: 336
2005-05-01 20:15:20 +00:00
Alexey Shchepin 5bdad9a7a6 * src/msgs/pl.msg: Updated (thanks to Andrew Smyk)
SVN Revision: 335
2005-05-01 20:08:27 +00:00
Alexey Shchepin 58450aaaf2 * contrib/extract_translations/README: Better phrasing (thanks to
Sergei Golovan)

* contrib/extract_translations/extract_translations.erl: Fix to
avoid duplication of lines (thanks to Sergei Golovan)

SVN Revision: 334
2005-05-01 19:14:30 +00:00
Alexey Shchepin 08c8d19e14 * src/msgs/sw.msg: New Swedish translation (thanks to (Magnus Henoch)
* src/msgs/pt.msg: New Portuguese translation (thanks to iceburn)

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

* src/msgs/nl.msg: Updated (thanks to Sander Devrieze)

SVN Revision: 333
2005-05-01 18:55:44 +00:00
Alexey Shchepin 916c7c6639 * src/ejabberd_auth_ldap.erl: Added listing of users support
SVN Revision: 332
2005-04-27 01:08:18 +00:00
Alexey Shchepin b695656631 * src/ejabberd_ctl.erl: Better spelling, now prints full file
paths, fixed checking of mnesia:install_fallback result, now
"dump" command dumps only persistent tables

SVN Revision: 331
2005-04-26 23:11:16 +00:00
Alexey Shchepin 36dfc9b056 * contrib/extract_translations/: A tool for extracting of
translation strings from ejabberd code (thanks to Sergei Golovan)

SVN Revision: 330
2005-04-26 22:44:58 +00:00
Alexey Shchepin 4f9497d358 * src/mod_vcard_ldap.erl: Bugfix (thanks to Mickael Remond)
SVN Revision: 329
2005-04-26 11:22:04 +00:00
Alexey Shchepin 8e9628b9ed * src/web/ejabberd_web_admin.erl: Added translation to submit
button and "shared roster groups" header (thanks to iceburn and
Sergei Golovan)

* src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/msgs/uk.msg: Likewise

* src/mod_muc/mod_muc_room.erl: Minor update to simplify
translation (thanks to Sergei Golovan)

SVN Revision: 328
2005-04-24 19:25:47 +00:00
Alexey Shchepin 9f1fd5ee3f * src/tls/tls_drv.c: Reverted previous patch
SVN Revision: 327
2005-04-24 12:09:47 +00:00
Alexey Shchepin e93f2aa1e1 * doc/guide.tex: Added mod_shared_roster documentation
* src/ejabberd.hrl: Updated version

SVN Revision: 326
2005-04-22 16:47:16 +00:00
Mickaël Rémond abf03f610a Changed version ID to version 0.9
SVN Revision: 325
2005-04-21 21:37:19 +00:00
Alexey Shchepin db7073ff2c * src/jd2ejd.erl: Bugfix
SVN Revision: 324
2005-04-21 14:06:15 +00:00
Alexey Shchepin fa479b6384 * src/ejabberd_auth.erl: Added check for domain of registered user
* src/web/ejabberd_web_admin.erl: Fixed user registration via web
interface, fixed path to user's offline messages (thanks to
Mickael Remond)

SVN Revision: 323
2005-04-19 23:10:22 +00:00
Alexey Shchepin d5b0b5c42b * src/mod_disco.erl: Fixed domain listing when one virtual host is
a subdomain of another

SVN Revision: 322
2005-04-19 22:19:22 +00:00
Mickaël Rémond 361985f034 Fixes a bug on the web interface: On user creation screen the user creation was using the function try_register/2 instead of the new one try_register/3; The link to the message queue were also missing the server.
SVN Revision: 321
2005-04-19 14:25:31 +00:00
384 changed files with 144236 additions and 34843 deletions
+38
View File
@@ -0,0 +1,38 @@
#
# You can add personal rules in your file .git/info/exclude
*.swp
*~
/doc/*.aux
/doc/*.haux
/doc/*.html
/doc/*.htoc
/doc/*.idx
/doc/*.ilg
/doc/*.ind
/doc/*.log
/doc/*.out
/doc/*.pdf
/doc/*.toc
/doc/contributed_modules.tex
/doc/version.tex
/src/*.beam
/src/*.so
/src/*.so.dSYM
/src/*/*.beam
/src/*/Makefile
/src/Makefile
/src/XmppAddr.asn1db
/src/XmppAddr.erl
/src/XmppAddr.hrl
/src/aclocal.m4
/src/autom4te.cache
/src/config.log
/src/config.status
/src/configure
/src/ejabberd.init
/src/ejabberdctl.example
/src/eldap/ELDAPv3.asn1db
/src/eldap/ELDAPv3.erl
/src/eldap/ELDAPv3.hrl
/src/eldap/eldap_filter_yecc.erl
/src/epam
-1849
View File
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
ejabberd - High-Performance Enterprise Instant Messaging Server
Quickstart guide
0. Requirements
To compile ejabberd you need:
- GNU Make
- GCC
- Erlang/OTP R12B-5 or higher. Recommended: R12B-5, R13B04 and R14B01.
Avoid R14A and R14B.
- exmpp 0.9.6 or higher
- OpenSSL 0.9.8 or higher, for STARTTLS, SASL and SSL encryption.
- Zlib 1.2.3 or higher, for Stream Compression support
(XEP-0138). Optional.
- Erlang mysql library. Optional. MySQL authentication/storage.
- Erlang pgsql library. Optional. PostgreSQL authentication/storage.
- PAM library. Optional. For Pluggable Authentication Modules (PAM).
- ESASL library. Optional. For SASL GSSAPI authentication.
- ImageMagick's Convert program. Optional. For CAPTCHA challenges.
1. Compile and install on *nix systems
To compile ejabberd, go to the directory src/ and execute the commands:
./configure
make
If you get an error like:
./configure: No such file or directory
the solution is to first execute:
aclocal
autoconf
To install ejabberd, run this command with system administrator rights
(root user):
sudo make install
These commands will:
- Install the configuration files in /etc/ejabberd/
- Install ejabberd binary, header and runtime files in /lib/ejabberd/
- Install the administration script: /sbin/ejabberdctl
- Install ejabberd documentation in /share/doc/ejabberd/
- Create a spool directory: /var/lib/ejabberd/
- Create a directory for log files: /var/log/ejabberd/
2. Start ejabberd
You can use the ejabberdctl command line administration script to
start and stop ejabberd. For example:
ejabberdctl start
For detailed information please refer to the
ejabberd Installation and Operation Guide
-21
View File
@@ -1,21 +0,0 @@
admin tool
mod_muc logging
admin interface
users management
statistics about each user
statistics about each connection
node management
node restart/shutdown
statistics about memory usage
S2S:
rewrite S2S key validation
check "id" attributes in db:verify packets
more correctly work with SRV DNS records (priority, weight, etc...)
TLS
make roster set to work in one transaction
add traffic shapers to c2s connection before authentification
more traffic shapers
SNMP
+5
View File
@@ -0,0 +1,5 @@
% List of ejabberd-modules to add for ejabberd packaging (source archive and installer)
%
% HTTP-binding:
%https://svn.process-one.net/ejabberd-modules/http_bind/trunk
%https://svn.process-one.net/ejabberd-modules/mod_http_fileserver/trunk
+61
View File
@@ -0,0 +1,61 @@
SHELL = /bin/bash
CONTRIBUTED_MODULES = ""
#ifeq ($(shell ls mod_http_bind.tex),mod_http_bind.tex)
# CONTRIBUTED_MODULES += "\\n\\setboolean{modhttpbind}{true}"
#endif
all: release pdf html
release:
@echo "Notes for the releaser:"
@echo "* Do not forget to add a link to the release notes in guide.tex"
@echo "* Do not forget to update the version number in src/ejabberd.app!"
@echo "* Do not forget to update the features in introduction.tex (including \new{} and \improved{} tags)."
@echo "Press any key to continue"
##@read foo
@echo "% ejabberd version (automatically generated)." > version.tex
@echo "\newcommand{\version}{"`sed '/vsn/!d;s/\(.*\)"\(.*\)"\(.*\)/\2/' ../src/ejabberd.app`"}" >> version.tex
@echo -n "% Contributed modules (automatically generated)." > contributed_modules.tex
@echo -e "$(CONTRIBUTED_MODULES)" >> contributed_modules.tex
html: guide.html dev.html features.html
pdf: guide.pdf features.pdf
clean:
rm -f *.aux
rm -f *.haux
rm -f *.htoc
rm -f *.idx
rm -f *.ilg
rm -f *.ind
rm -f *.log
rm -f *.out
rm -f *.pdf
rm -f *.toc
rm -f version.tex
[ ! -f contributed_modules.tex ] || rm contributed_modules.tex
distclean: clean
rm -f *.html
guide.html: guide.tex
hevea -fix -pedantic guide.tex
dev.html: dev.tex
hevea -fix -pedantic dev.tex
features.html: features.tex
hevea -fix -pedantic features.tex
guide.pdf: guide.tex
pdflatex guide.tex
pdflatex guide.tex
pdflatex guide.tex
makeindex guide.idx
pdflatex guide.tex
features.pdf: features.tex
pdflatex features.tex
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

-364
View File
@@ -1,364 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD><TITLE>Ejabberd Developers Guide</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=ISO8859-1">
<META name="GENERATOR" content="hevea 1.06">
</HEAD>
<BODY >
<!--HEVEA command line is: /usr/bin/hevea -charset ISO8859-1 dev.tex -->
<!--HTMLHEAD-->
<!--ENDHTML-->
<!--PREFIX <ARG ></ARG>-->
<!--CUT DEF section 1 -->
<H1 ALIGN=center>Ejabberd Developers Guide</H1>
<H3 ALIGN=center>Alexey Shchepin<BR>
<A HREF="mailto:alexey@sevcom.net"><TT>mailto:alexey@sevcom.net</TT></A><BR>
<A HREF="xmpp:aleksey@jabber.ru"><TT>xmpp:aleksey@jabber.ru</TT></A></H3>
<H3 ALIGN=center>September 10, 2003</H3><DIV ALIGN=center>
<IMG SRC="logo.png">
</DIV><BR>
<BR>
<!--TOC section Table of Contents-->
<H2>Table of Contents</H2><!--SEC END -->
<UL><LI>
<A HREF="#htoc1">1&nbsp;&nbsp;Introduction</A>
<UL><LI>
<A HREF="#htoc2">1.1&nbsp;&nbsp;How it works</A>
<UL><LI>
<A HREF="#htoc3">1.1.1&nbsp;&nbsp;Router</A>
<LI><A HREF="#htoc4">1.1.2&nbsp;&nbsp;Local Router</A>
<LI><A HREF="#htoc5">1.1.3&nbsp;&nbsp;Session Manager</A>
<LI><A HREF="#htoc6">1.1.4&nbsp;&nbsp;S2S Manager</A>
</UL>
</UL>
<LI><A HREF="#htoc7">2&nbsp;&nbsp;XML representation</A>
<LI><A HREF="#htoc8">3&nbsp;&nbsp;Module <TT>xml</TT></A>
<LI><A HREF="#htoc9">4&nbsp;&nbsp;<TT>ejabberd</TT> modules</A>
<UL><LI>
<A HREF="#htoc10">4.1&nbsp;&nbsp;<CODE>gen_mod</CODE> behaviour</A>
<LI><A HREF="#htoc11">4.2&nbsp;&nbsp;Module <CODE>gen_iq_handler</CODE></A>
<LI><A HREF="#htoc12">4.3&nbsp;&nbsp;Services</A>
</UL>
</UL>
<!--TOC section Introduction-->
<H2><A NAME="htoc1">1</A>&nbsp;&nbsp;Introduction</H2><!--SEC END -->
<A NAME="sec:intro"></A>
<TT>ejabberd</TT> is a Free and Open Source fault-tolerant distributed Jabber
server. It is writen mostly in Erlang.<BR>
<BR>
The main features of <TT>ejabberd</TT> is:
<UL><LI>
Works on most of popular platforms: *nix (tested on Linux and FreeBSD)
and Win32
<LI>Distributed: You can run <TT>ejabberd</TT> on a cluster of machines and all of
them will serve one Jabber domain.
<LI>Fault-tolerance: You can setup an <TT>ejabberd</TT> cluster so that all the
information required for a properly working service will be stored
permanently on more than one node. This means that if one of the nodes
crashes, then the others will continue working without disruption.
You can also add or replace more nodes ``on the fly''.
<LI>Built-in <A HREF="http://www.jabber.org/jeps/jep-0045.html">Multi-User
Chat</A> service
<LI>Built-in IRC transport
<LI>Built-in
<A HREF="http://www.jabber.org/jeps/jep-0060.html">Publish-Subscribe</A>
service
<LI>Built-in Jabber Users Directory service based on users vCards
<LI>Support for
<A HREF="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</A>
(Service Discovery).
<LI>Support for
<A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A>
(Statistics Gathering).
<LI>Support for <TT>xml:lang</TT> attribute in many XML elements
</UL>
<!--TOC subsection How it works-->
<H3><A NAME="htoc2">1.1</A>&nbsp;&nbsp;How it works</H3><!--SEC END -->
<A NAME="sec:howitworks"></A>
A Jabber domain is served by one or more <TT>ejabberd</TT> nodes. These nodes can
be run on different machines that are connected via a network. They all must
have the ability to connect to port 4369 of all another nodes, and must have
the same magic cookie (see Erlang/OTP documentation, in other words the file
<TT>~ejabberd/.erlang.cookie</TT> must be the same on all nodes). This is
needed because all nodes exchange information about connected users, S2S
connections, registered services, etc...<BR>
<BR>
Each <TT>ejabberd</TT> node have following modules:
<UL><LI>
router;
<LI>local router.
<LI>session manager;
<LI>S2S manager;
</UL>
<!--TOC subsubsection Router-->
<H4><A NAME="htoc3">1.1.1</A>&nbsp;&nbsp;Router</H4><!--SEC END -->
This module is the main router of Jabber packets on each node. It routes
them based on their destinations domains. It has two tables: local and global
routes. First, domain of packet destination searched in local table, and if it
found, then the packet is routed to appropriate process. If no, then it
searches in global table, and is routed to the appropriate <TT>ejabberd</TT> node or
process. If it does not exists in either tables, then it sent to the S2S
manager.<BR>
<BR>
<!--TOC subsubsection Local Router-->
<H4><A NAME="htoc4">1.1.2</A>&nbsp;&nbsp;Local Router</H4><!--SEC END -->
This module routes packets which have a destination domain equal to this server
name. If destination JID has a non-empty user part, then it routed to the
session manager, else it is processed depending on it's content.<BR>
<BR>
<!--TOC subsubsection Session Manager-->
<H4><A NAME="htoc5">1.1.3</A>&nbsp;&nbsp;Session Manager</H4><!--SEC END -->
This module routes packets to local users. It searches for what user resource
packet must be sended via presence table. If this resource is connected to
this node, it is routed to C2S process, if it connected via another node, then
the packet is sent to session manager on that node.<BR>
<BR>
<!--TOC subsubsection S2S Manager-->
<H4><A NAME="htoc6">1.1.4</A>&nbsp;&nbsp;S2S Manager</H4><!--SEC END -->
This module routes packets to other Jabber servers. First, it checks if an
open S2S connection from the domain of the packet source to the domain of
packet destination already exists. If it is open on another node, then it
routes the packet to S2S manager on that node, if it is open on this node, then
it is routed to the process that serves this connection, and if a connection
does not exist, then it is opened and registered.<BR>
<BR>
<!--TOC section XML representation-->
<H2><A NAME="htoc7">2</A>&nbsp;&nbsp;XML representation</H2><!--SEC END -->
<A NAME="sec:xmlrepr"></A>
Each XML stanza represented as following tuple:
<PRE>
XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]}
Name = string()
Attrs = [Attr]
Attr = {Key, Val}
Key = string()
Val = string()
ElementOrCDATA = XMLElement | CDATA
CDATA = {xmlcdata, string()}
</PRE>E.&nbsp;g. this stanza:
<PRE>
&lt;message to='test@conference.e.localhost' type='groupchat'&gt;
&lt;body&gt;test&lt;/body&gt;
&lt;/message&gt;
</PRE>represented as following structure:
<PRE>
{xmlelement, "message",
[{"to", "test@conference.e.localhost"},
{"type", "groupchat"}],
[{xmlelement, "body",
[],
[{xmlcdata, "test"}]}]}}
</PRE>
<!--TOC section Module <TT>xml</TT>-->
<H2><A NAME="htoc8">3</A>&nbsp;&nbsp;Module <TT>xml</TT></H2><!--SEC END -->
<A NAME="sec:xmlmod"></A>
<DL COMPACT=compact><DT>
<CODE><B>element_to_string(El) -&gt; string()</B></CODE><DD>
<PRE>
El = XMLElement
</PRE>Returns string representation of XML stanza <TT>El</TT>.<BR>
<BR>
<DT><CODE><B>crypt(S) -&gt; string()</B></CODE><DD>
<PRE>
S = string()
</PRE>Returns string which correspond to <TT>S</TT> with encoded XML special
characters.<BR>
<BR>
<DT><CODE><B>remove_cdata(ECList) -&gt; EList</B></CODE><DD>
<PRE>
ECList = [ElementOrCDATA]
EList = [XMLElement]
</PRE><TT>EList</TT> is a list of all non-CDATA elements of ECList.<BR>
<BR>
<DT><CODE><B>get_path_s(El, Path) -&gt; Res</B></CODE><DD>
<PRE>
El = XMLElement
Path = [PathItem]
PathItem = PathElem | PathAttr | PathCDATA
PathElem = {elem, Name}
PathAttr = {attr, Name}
PathCDATA = cdata
Name = string()
Res = string() | XMLElement
</PRE>If <TT>Path</TT> is empty, then returns <TT>El</TT>. Else sequentially
consider elements of <TT>Path</TT>. Each element is one of:
<DL COMPACT=compact><DT>
<CODE><B>{elem, Name}</B></CODE><DD> <TT>Name</TT> is name of subelement of
<TT>El</TT>, if such element exists, then this element considered in
following steps, else returns empty string.
<DT><CODE><B>{attr, Name}</B></CODE><DD> If <TT>El</TT> have attribute <TT>Name</TT>, then
returns value of this attribute, else returns empty string.
<DT><CODE><B>cdata</B></CODE><DD> Returns CDATA of <TT>El</TT>.
</DL><BR>
<BR>
<DT><B>TODO:</B><DD>
<PRE>
get_cdata/1, get_tag_cdata/1
get_attr/2, get_attr_s/2
get_tag_attr/2, get_tag_attr_s/2
get_subtag/2
</PRE></DL>
<!--TOC section <TT>ejabberd</TT> modules-->
<H2><A NAME="htoc9">4</A>&nbsp;&nbsp;<TT>ejabberd</TT> modules</H2><!--SEC END -->
<A NAME="sec:emods"></A>
<!--TOC subsection <CODE>gen_mod</CODE> behaviour-->
<H3><A NAME="htoc10">4.1</A>&nbsp;&nbsp;<CODE>gen_mod</CODE> behaviour</H3><!--SEC END -->
<A NAME="sec:genmod"></A>
TBD<BR>
<BR>
<!--TOC subsection Module <CODE>gen_iq_handler</CODE>-->
<H3><A NAME="htoc11">4.2</A>&nbsp;&nbsp;Module <CODE>gen_iq_handler</CODE></H3><!--SEC END -->
<A NAME="sec:geniqhandl"></A>
The module <CODE>gen_iq_handler</CODE> allows to easily write handlers for IQ packets
of particular XML namespaces that addressed to server or to users bare JIDs.<BR>
<BR>
In this module the following functions are defined:
<DL COMPACT=compact><DT>
<CODE><B>add_iq_handler(Component, NS, Module, Function, Type)</B></CODE><DD>
<PRE>
Component = Module = Function = atom()
NS = string()
Type = no_queue | one_queue | parallel
</PRE>Registers function <CODE>Module:Function</CODE> as handler for IQ packets that
contain child of namespace <CODE>NS</CODE> in <CODE>Component</CODE>. Queueing
discipline is <CODE>Type</CODE>. There are at least two components defined:
<DL COMPACT=compact><DT>
<CODE><B>ejabberd_local</B></CODE><DD> Handles packets that addressed to server JID;
<DT><CODE><B>ejabberd_sm</B></CODE><DD> Handles packets that addressed to users bare JIDs.
</DL>
<DT><CODE><B>remove_iq_handler(Component, NS)</B></CODE><DD>
<PRE>
Component = atom()
NS = string()
</PRE>Removes IQ handler for namespace <CODE>NS</CODE> from <CODE>Component</CODE>.
</DL>
Handler function must have the following type:
<DL COMPACT=compact><DT>
<CODE><B>Module:Function(From, To, IQ)</B></CODE><DD>
<PRE>
From = To = jid()
</PRE></DL>
<PRE>
-module(mod_cputime).
-behaviour(gen_mod).
-export([start/1,
stop/0,
process_local_iq/3]).
-include("ejabberd.hrl").
-include("jlib.hrl").
-define(NS_CPUTIME, "ejabberd:cputime").
start(Opts) -&gt;
IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue),
gen_iq_handler:add_iq_handler(ejabberd_local, ?NS_CPUTIME,
?MODULE, process_local_iq, IQDisc).
stop() -&gt;
gen_iq_handler:remove_iq_handler(ejabberd_local, ?NS_CPUTIME).
process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) -&gt;
case Type of
set -&gt;
{iq, ID, error, XMLNS,
[SubEl, ?ERR_NOT_ALLOWED]};
get -&gt;
CPUTime = element(1, erlang:statistics(runtime))/1000,
SCPUTime = lists:flatten(io_lib:format("~.3f", CPUTime)),
{iq, ID, result, XMLNS,
[{xmlelement, "query",
[{"xmlns", ?NS_CPUTIME}],
[{xmlelement, "cputime", [], [{xmlcdata, SCPUTime}]}]}]}
end.
</PRE>
<!--TOC subsection Services-->
<H3><A NAME="htoc12">4.3</A>&nbsp;&nbsp;Services</H3><!--SEC END -->
<A NAME="sec:services"></A>
TBD<BR>
<BR>
TODO: use <CODE>proc_lib</CODE>
<PRE>
-module(mod_echo).
-behaviour(gen_mod).
-export([start/1, init/1, stop/0]).
-include("ejabberd.hrl").
-include("jlib.hrl").
start(Opts) -&gt;
Host = gen_mod:get_opt(host, Opts, "echo." ++ ?MYNAME),
register(ejabberd_mod_echo, spawn(?MODULE, init, [Host])).
init(Host) -&gt;
ejabberd_router:register_local_route(Host),
loop(Host).
loop(Host) -&gt;
receive
{route, From, To, Packet} -&gt;
ejabberd_router:route(To, From, Packet),
loop(Host);
stop -&gt;
ejabberd_router:unregister_local_route(Host),
ok;
_ -&gt;
loop(Host)
end.
stop() -&gt;
ejabberd_mod_echo ! stop,
ok.
</PRE>
<!--HTMLFOOT-->
<!--ENDHTML-->
<!--FOOTER-->
<HR SIZE=2>
<BLOCKQUOTE><EM>This document was translated from L<sup>A</sup>T<sub>E</sub>X by
</EM><A HREF="http://pauillac.inria.fr/~maranget/hevea/index.html"><EM>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A</EM></A><EM>.
</EM></BLOCKQUOTE>
</BODY>
</HTML>
+207 -119
View File
@@ -1,14 +1,20 @@
\documentclass[10pt]{article}
\documentclass[a4paper,10pt]{article}
%% Packages
\usepackage{graphics}
\usepackage{hevea}
\usepackage{makeidx}
\usepackage{verbatim}
%% Index
\makeindex
% Remove the index anchors from the HTML version to save size and bandwith.
\newcommand{\ind}[1]{\begin{latexonly}\index{#1}\end{latexonly}}
%% Images
\newcommand{\logoscale}{0.7}
\newcommand{\imgscale}{0.58}
\newcommand{\insimg}[1]{\insscaleimg{\imgscale}{#1}}
\newcommand{\insscaleimg}[2]{
\imgsrc{#2}{}
\begin{latexonly}
@@ -16,87 +22,82 @@
\end{latexonly}
}
%% Various
\newcommand{\ns}[1]{\texttt{#1}}
\newcommand{\ejabberd}{\texttt{ejabberd}}
\newcommand{\Jabber}{Jabber}
\newcommand{\XMPP}{XMPP}
\newcommand{\modregister}{\texttt{mod\_register}}
\newcommand{\modroster}{\texttt{mod\_roster}}
\newcommand{\modconfigure}{\texttt{mod\_configure}}
\newcommand{\moddisco}{\texttt{mod\_disco}}
\newcommand{\modstats}{\texttt{mod\_stats}}
\newcommand{\modvcard}{\texttt{mod\_vcard}}
\newcommand{\modoffline}{\texttt{mod\_offline}}
\newcommand{\modecho}{\texttt{mod\_echo}}
\newcommand{\modprivate}{\texttt{mod\_private}}
\newcommand{\modtime}{\texttt{mod\_time}}
\newcommand{\modversion}{\texttt{mod\_version}}
c
%\setcounter{tocdepth}{3}
%% Modules
\newcommand{\module}[1]{\texttt{#1}}
\newcommand{\modadhoc}{\module{mod\_adhoc}}
\newcommand{\modannounce}{\module{mod\_announce}}
\newcommand{\modconfigure}{\module{mod\_configure}}
\newcommand{\moddisco}{\module{mod\_disco}}
\newcommand{\modecho}{\module{mod\_echo}}
\newcommand{\modirc}{\module{mod\_irc}}
\newcommand{\modlast}{\module{mod\_last}}
\newcommand{\modmuc}{\module{mod\_muc}}
\newcommand{\modmuclog}{\module{mod\_muc\_log}}
\newcommand{\modoffline}{\module{mod\_offline}}
\newcommand{\modprivacy}{\module{mod\_privacy}}
\newcommand{\modprivate}{\module{mod\_private}}
\newcommand{\modpubsub}{\module{mod\_pubsub}}
\newcommand{\modregister}{\module{mod\_register}}
\newcommand{\modroster}{\module{mod\_roster}}
\newcommand{\modservicelog}{\module{mod\_service\_log}}
\newcommand{\modsharedroster}{\module{mod\_shared\_roster}}
\newcommand{\modstats}{\module{mod\_stats}}
\newcommand{\modtime}{\module{mod\_time}}
\newcommand{\modvcard}{\module{mod\_vcard}}
\newcommand{\modvcardldap}{\module{mod\_vcard\_ldap}}
\newcommand{\modversion}{\module{mod\_version}}
\title{Ejabberd Developers Guide}
%% Title page
\include{version}
\title{Ejabberd \version\ Developers Guide}
\author{Alexey Shchepin \\
\ahrefurl{mailto:alexey@sevcom.net} \\
\ahrefurl{xmpp:aleksey@jabber.ru}}
\date{September 10, 2003}
%% Options
\newcommand{\marking}[1]{#1} % Marking disabled
\newcommand{\quoting}[2][yozhik]{} % Quotes disabled
\newcommand{\new}{\begin{latexonly}\marginpar{\textsc{new}}\end{latexonly}} % Highlight new features
\newcommand{\improved}{\begin{latexonly}\marginpar{\textsc{improved}}\end{latexonly}} % Highlight improved features
\newcommand{\moreinfo}[1]{} % Hide details
%% Footnotes
\newcommand{\txepref}[2]{\footahref{http://www.xmpp.org/extensions/xep-#1.html}{#2}}
\newcommand{\xepref}[1]{\txepref{#1}{XEP-#1}}
\begin{document}
\label{titlepage}
\begin{titlepage}
\maketitle{}
{\centering
\insscaleimg{\logoscale}{logo.png}
\begin{center}
{\insscaleimg{\logoscale}{logo.png}
\par
}
\end{center}
\begin{quotation}\textit{I can thoroughly recommend ejabberd for ease of setup --
Kevin Smith, Current maintainer of the Psi project}\end{quotation}
\end{titlepage}
%\newpage
\tableofcontents{}
\newpage
\section{Introduction}
\label{sec:intro}
% Input introduction.tex
\input{introduction}
\ejabberd{} is a Free and Open Source fault-tolerant distributed \Jabber{}
server. It is writen mostly in Erlang.
The main features of \ejabberd{} is:
\begin{itemize}
\item Works on most of popular platforms: *nix (tested on Linux and FreeBSD)
and Win32
\item Distributed: You can run \ejabberd{} on a cluster of machines and all of
them will serve one Jabber domain.
\item Fault-tolerance: You can setup an \ejabberd{} cluster so that all the
information required for a properly working service will be stored
permanently on more than one node. This means that if one of the nodes
crashes, then the others will continue working without disruption.
You can also add or replace more nodes ``on the fly''.
\item Built-in \footahref{http://www.jabber.org/jeps/jep-0045.html}{Multi-User
Chat} service
\item Built-in IRC transport
\item Built-in
\footahref{http://www.jabber.org/jeps/jep-0060.html}{Publish-Subscribe}
service
\item Built-in Jabber Users Directory service based on users vCards
\item Support for
\footahref{http://www.jabber.org/jeps/jep-0030.html}{JEP-0030}
(Service Discovery).
\item Support for
\footahref{http://www.jabber.org/jeps/jep-0039.html}{JEP-0039}
(Statistics Gathering).
\item Support for \ns{xml:lang} attribute in many XML elements
\end{itemize}
\section{How it Works}
\label{howitworks}
\subsection{How it works}
\label{sec:howitworks}
A \Jabber{} domain is served by one or more \ejabberd{} nodes. These nodes can
A \XMPP{} domain is served by one or more \ejabberd{} nodes. These nodes can
be run on different machines that are connected via a network. They all must
have the ability to connect to port 4369 of all another nodes, and must have
the same magic cookie (see Erlang/OTP documentation, in other words the file
@@ -115,9 +116,9 @@ Each \ejabberd{} node have following modules:
\end{itemize}
\subsubsection{Router}
\subsection{Router}
This module is the main router of \Jabber{} packets on each node. It routes
This module is the main router of \XMPP{} packets on each node. It routes
them based on their destinations domains. It has two tables: local and global
routes. First, domain of packet destination searched in local table, and if it
found, then the packet is routed to appropriate process. If no, then it
@@ -126,14 +127,14 @@ process. If it does not exists in either tables, then it sent to the S2S
manager.
\subsubsection{Local Router}
\subsection{Local Router}
This module routes packets which have a destination domain equal to this server
name. If destination JID has a non-empty user part, then it routed to the
session manager, else it is processed depending on it's content.
\subsubsection{Session Manager}
\subsection{Session Manager}
This module routes packets to local users. It searches for what user resource
packet must be sended via presence table. If this resource is connected to
@@ -141,9 +142,9 @@ this node, it is routed to C2S process, if it connected via another node, then
the packet is sent to session manager on that node.
\subsubsection{S2S Manager}
\subsection{S2S Manager}
This module routes packets to other \Jabber{} servers. First, it checks if an
This module routes packets to other \XMPP{} servers. First, it checks if an
open S2S connection from the domain of the packet source to the domain of
packet destination already exists. If it is open on another node, then it
routes the packet to S2S manager on that node, if it is open on this node, then
@@ -151,12 +152,83 @@ it is routed to the process that serves this connection, and if a connection
does not exist, then it is opened and registered.
\section{Authentication}
\subsubsection{External}
\label{externalauth}
\ind{external authentication}
\section{XML representation}
\label{sec:xmlrepr}
The external authentication script follows
\footahref{http://www.erlang.org/doc/tutorial/c_portdriver.html}{the erlang port driver API}.
Each XML stanza represented as following tuple:
That script is supposed to do theses actions, in an infinite loop:
\begin{itemize}
\item read from stdin: AABBBBBBBBB.....
\begin{itemize}
\item A: 2 bytes of length data (a short in network byte order)
\item B: a string of length found in A that contains operation in plain text
operation are as follows:
\begin{itemize}
\item auth:User:Server:Password (check if a username/password pair is correct)
\item isuser:User:Server (check if it's a valid user)
\item setpass:User:Server:Password (set user's password)
\item tryregister:User:Server:Password (try to register an account)
\item removeuser:User:Server (remove this account)
\item removeuser3:User:Server:Password (remove this account if the password is correct)
\end{itemize}
\end{itemize}
\item write to stdout: AABB
\begin{itemize}
\item A: the number 2 (coded as a short, which is bytes length of following result)
\item B: the result code (coded as a short), should be 1 for success/valid, or 0 for failure/invalid
\end{itemize}
\end{itemize}
Example python script
\begin{verbatim}
#!/usr/bin/python
import sys
from struct import *
def from_ejabberd():
input_length = sys.stdin.read(2)
(size,) = unpack('>h', input_length)
return sys.stdin.read(size).split(':')
def to_ejabberd(bool):
answer = 0
if bool:
answer = 1
token = pack('>hh', 2, answer)
sys.stdout.write(token)
sys.stdout.flush()
def auth(username, server, password):
return True
def isuser(username, server):
return True
def setpass(username, server, password):
return True
while True:
data = from_ejabberd()
success = False
if data[0] == "auth":
success = auth(data[1], data[2], data[3])
elif data[0] == "isuser":
success = isuser(data[1], data[2])
elif data[0] == "setpass":
success = setpass(data[1], data[2], data[3])
to_ejabberd(success)
\end{verbatim}
\section{XML Representation}
\label{xmlrepr}
Each XML stanza is represented as the following tuple:
\begin{verbatim}
XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]}
Name = string()
@@ -169,14 +241,14 @@ XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]}
\end{verbatim}
E.\,g. this stanza:
\begin{verbatim}
<message to='test@conference.e.localhost' type='groupchat'>
<message to='test@conference.example.org' type='groupchat'>
<body>test</body>
</message>
\end{verbatim}
represented as following structure:
is represented as the following structure:
\begin{verbatim}
{xmlelement, "message",
[{"to", "test@conference.e.localhost"},
[{"to", "test@conference.example.org"},
{"type", "groupchat"}],
[{xmlelement, "body",
[],
@@ -186,23 +258,23 @@ represented as following structure:
\section{Module \texttt{xml}}
\label{sec:xmlmod}
\label{xmlmod}
\begin{description}
\item[\verb|element_to_string(El) -> string()|]
\item{\verb|element_to_string(El) -> string()|}
\begin{verbatim}
El = XMLElement
\end{verbatim}
Returns string representation of XML stanza \texttt{El}.
\item[\verb|crypt(S) -> string()|]
\item{\verb|crypt(S) -> string()|}
\begin{verbatim}
S = string()
\end{verbatim}
Returns string which correspond to \texttt{S} with encoded XML special
characters.
\item[\verb|remove_cdata(ECList) -> EList|]
\item{\verb|remove_cdata(ECList) -> EList|}
\begin{verbatim}
ECList = [ElementOrCDATA]
EList = [XMLElement]
@@ -211,7 +283,7 @@ EList = [XMLElement]
\item[\verb|get_path_s(El, Path) -> Res|]
\item{\verb|get_path_s(El, Path) -> Res|}
\begin{verbatim}
El = XMLElement
Path = [PathItem]
@@ -225,15 +297,15 @@ Res = string() | XMLElement
If \texttt{Path} is empty, then returns \texttt{El}. Else sequentially
consider elements of \texttt{Path}. Each element is one of:
\begin{description}
\item[\verb|{elem, Name}|] \texttt{Name} is name of subelement of
\item{\verb|{elem, Name}|} \texttt{Name} is name of subelement of
\texttt{El}, if such element exists, then this element considered in
following steps, else returns empty string.
\item[\verb|{attr, Name}|] If \texttt{El} have attribute \texttt{Name}, then
\item{\verb|{attr, Name}|} If \texttt{El} have attribute \texttt{Name}, then
returns value of this attribute, else returns empty string.
\item[\verb|cdata|] Returns CDATA of \texttt{El}.
\item{\verb|cdata|} Returns CDATA of \texttt{El}.
\end{description}
\item[TODO:]
\item{TODO:}
\begin{verbatim}
get_cdata/1, get_tag_cdata/1
get_attr/2, get_attr_s/2
@@ -243,49 +315,63 @@ Res = string() | XMLElement
\end{description}
\section{Module \texttt{xml\_stream}}
\label{xmlstreammod}
\begin{description}
\item{\verb!parse_element(Str) -> XMLElement | {error, Err}!}
\begin{verbatim}
Str = string()
Err = term()
\end{verbatim}
Parses \texttt{Str} using XML parser, returns either parsed element or error
tuple.
\end{description}
\section{\ejabberd{} modules}
\label{sec:emods}
\section{Modules}
\label{emods}
\subsection{\verb|gen_mod| behaviour}
\label{sec:genmod}
%\subsection{gen\_mod behaviour}
%\label{genmod}
TBD
%TBD
\subsection{Module \verb|gen_iq_handler|}
\label{sec:geniqhandl}
\subsection{Module gen\_iq\_handler}
\label{geniqhandl}
The module \verb|gen_iq_handler| allows to easily write handlers for IQ packets
of particular XML namespaces that addressed to server or to users bare JIDs.
In this module the following functions are defined:
\begin{description}
\item[\verb|add_iq_handler(Component, NS, Module, Function, Type)|]
\item{\verb|add_iq_handler(Component, Host, NS, Module, Function, Type)|}
\begin{verbatim}
Component = Module = Function = atom()
NS = string()
Host = NS = string()
Type = no_queue | one_queue | parallel
\end{verbatim}
Registers function \verb|Module:Function| as handler for IQ packets that
contain child of namespace \verb|NS| in \verb|Component|. Queueing
discipline is \verb|Type|. There are at least two components defined:
Registers function \verb|Module:Function| as handler for IQ packets on
virtual host \verb|Host| that contain child of namespace \verb|NS| in
\verb|Component|. Queueing discipline is \verb|Type|. There are at least
two components defined:
\begin{description}
\item[\verb|ejabberd_local|] Handles packets that addressed to server JID;
\item[\verb|ejabberd_sm|] Handles packets that addressed to users bare JIDs.
\item{\verb|ejabberd_local|} Handles packets that addressed to server JID;
\item{\verb|ejabberd_sm|} Handles packets that addressed to users bare JIDs.
\end{description}
\item[\verb|remove_iq_handler(Component, NS)|]
\item{\verb|remove_iq_handler(Component, Host, NS)|}
\begin{verbatim}
Component = atom()
NS = string()
Host = NS = string()
\end{verbatim}
Removes IQ handler for namespace \verb|NS| from \verb|Component|.
Removes IQ handler on virtual host \verb|Host| for namespace \verb|NS| from
\verb|Component|.
\end{description}
Handler function must have the following type:
\begin{description}
\item[\verb|Module:Function(From, To, IQ)|]
\item{\verb|Module:Function(From, To, IQ)|}
\begin{verbatim}
From = To = jid()
\end{verbatim}
@@ -298,8 +384,8 @@ From = To = jid()
-behaviour(gen_mod).
-export([start/1,
stop/0,
-export([start/2,
stop/1,
process_local_iq/3]).
-include("ejabberd.hrl").
@@ -307,13 +393,13 @@ From = To = jid()
-define(NS_CPUTIME, "ejabberd:cputime").
start(Opts) ->
start(Host, Opts) ->
IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue),
gen_iq_handler:add_iq_handler(ejabberd_local, ?NS_CPUTIME,
gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_CPUTIME,
?MODULE, process_local_iq, IQDisc).
stop() ->
gen_iq_handler:remove_iq_handler(ejabberd_local, ?NS_CPUTIME).
stop(Host) ->
gen_iq_handler:remove_iq_handler(ejabberd_local, Host, ?NS_CPUTIME).
process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
case Type of
@@ -332,25 +418,26 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) ->
\subsection{Services}
\label{sec:services}
\label{services}
TBD
%TBD
TODO: use \verb|proc_lib|
%TODO: use \verb|proc_lib|
\begin{verbatim}
-module(mod_echo).
-behaviour(gen_mod).
-export([start/1, init/1, stop/0]).
-export([start/2, init/1, stop/1]).
-include("ejabberd.hrl").
-include("jlib.hrl").
start(Opts) ->
Host = gen_mod:get_opt(host, Opts, "echo." ++ ?MYNAME),
register(ejabberd_mod_echo, spawn(?MODULE, init, [Host])).
start(Host, Opts) ->
MyHost = gen_mod:get_opt(host, Opts, "echo." ++ Host),
register(gen_mod:get_module_proc(Host, ?PROCNAME),
spawn(?MODULE, init, [MyHost])).
init(Host) ->
ejabberd_router:register_local_route(Host),
@@ -362,15 +449,16 @@ loop(Host) ->
ejabberd_router:route(To, From, Packet),
loop(Host);
stop ->
ejabberd_router:unregister_local_route(Host),
ejabberd_router:unregister_route(Host),
ok;
_ ->
loop(Host)
end.
stop() ->
ejabberd_mod_echo ! stop,
ok.
stop(Host) ->
Proc = gen_mod:get_module_proc(Host, ?PROCNAME),
Proc ! stop,
{wait, Proc}.
\end{verbatim}
+18
View File
@@ -0,0 +1,18 @@
APPNAME = ejabberd
VSN = $(shell sed '/vsn/!d;s/\(.*\)"\(.*\)"\(.*\)/\2/' ../../src/ejabberd.app)
DOCDIR=.
SRCDIR=../../src
.PHONY = all
all: docs
clean:
rm -f *.html
rm edoc-info
rm erlang.png
docs:
erl -noshell -run edoc_run application \
"'$(APPNAME)'" '"$(SRCDIR)"' '[{dir,"$(DOCDIR)"},{packages, false},{todo,false},{private,true},{def,{vsn,"$(VSN)"}},{stylesheet,"process-one.css"},{overview,"$(DOCDIR)/overview.edoc"}]' -s init stop
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 B

+19
View File
@@ -0,0 +1,19 @@
.comment {color: brown}
.export {color: darkorchid}
.import {color: darkorchid}
.string {color: maroon}
.builtin {color: dodgerblue}
.guard {color: mediumturquoise}
.function {color: blue}
.variable {color: green}
.macro {color: mediumpurple}
.record {color: orangered}
.call {color: purple}
.attribute {color: firebrick}
.error{color: red}
.l {
font-style: normal;
font-weight: normal;
text-decoration: none;
color: gray;
}
+356
View File
@@ -0,0 +1,356 @@
%%%-------------------------------------------------------------------
%%% File : escobar_hiliter.erl
%%% Author : Mats Cronqvist <mats.cronqvist@gmail.com>
%%% Description :
%%%
%%% Created : 6 Jun 2005 by Mats Cronqvist <mats.cronqvist@gmail.com>
%%%
%%%
%%% Escobar, Copyright (c) 2005-2009 Mats Cronqvist
%%%
%%% MIT License:
%%%
%%% Permission is hereby granted, free of charge, to any person obtaining a copy
%%% of this software and associated documentation files (the "Software"), to deal
%%% in the Software without restriction, including without limitation the rights
%%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
%%% copies of the Software, and to permit persons to whom the Software is
%%% furnished to do so, subject to the following conditions:
%%%
%%% The above copyright notice and this permission notice shall be included in
%%% all copies or substantial portions of the Software.
%%%
%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
%%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
%%% THE SOFTWARE.
%%%
%%%-------------------------------------------------------------------
-module(escobar_hilite).
-export([file/1,tree/1,string/1,out/2]).
-define(LOG(T),escobar:log(process_info(self()),T)).
-import(erl_syntax,
[get_ann/1,add_ann/2,subtrees/1,update_tree/2,type/1,get_pos/1,
application/2,application_arguments/1,application_operator/1,
arity_qualifier_argument/1,arity_qualifier_body/1,
atom_name/1,atom_value/1,
attribute/2,attribute_name/1,attribute_arguments/1,
clause/3,clause_patterns/1,clause_guard/1,clause_body/1,
comment/2,comment_text/1,comment_padding/1,
function/2,function_name/1,function_clauses/1,function_arity/1,
integer_literal/1,
list/1,list_elements/1,
macro/2,macro_name/1,macro_arguments/1,
module_qualifier_body/1, module_qualifier_argument/1,
string_value/1,string_literal/1,
variable_literal/1,variable_name/1,
record_access/3, record_access_argument/1,
record_access_field/1,record_access_type/1,
record_expr/3, record_expr_argument/1,
record_expr_fields/1, record_expr_type/1,
record_index_expr/2, record_index_expr_field/1,
record_index_expr_type/1,
form_list/1,
get_precomments/1,get_postcomments/1,has_comments/1,
copy_comments/2,remove_comments/1]).
-import(prettypr,
[above/2,follow/2,beside/2,empty/0,
null_text/1,break/1,floating/3,text/1,floating/1]).
-import(lists,[flatten/1,duplicate/2,keysearch/3,member/2,usort/1,reverse/1]).
-import(filename,[join/1,basename/1]).
out(File,HtmlString) ->
{ok,FD}=file:open(File,[write]),
try
io:fwrite(FD,"<html>",[]),
io:fwrite(FD,"<link rel=\"stylesheet\" type=\"text/css\"",[]),
io:fwrite(FD,"href=\"escobar.css\"></link><body><pre>",[]),
io:fwrite(FD,"~s",[HtmlString]),
io:fwrite(FD,"</pre></body></html>",[])
after
file:close(FD)
end.
string(Str) ->
tree(form_list(scan_and_parse(Str,1,[]))).
scan_and_parse([],_Line,Forms) -> reverse(Forms);
scan_and_parse(Text,Line,Forms) ->
{done,{ok,Toks,NLine},Cont} = erl_scan:tokens([],Text,Line),
{ok,Form} = erl_parse:parse_form(Toks),
scan_and_parse(Cont,NLine,[Form|Forms]).
file(FileName) ->
case filelib:is_regular(FileName) of
true ->
case filename:extension(FileName) of
".beam"-> tree(get_tree_beam(FileName));
".erl" -> tree(get_comm_tree_erl(FileName));
".hrl" -> tree(get_comm_tree_erl(FileName));
X -> erlang:error({unknown_extension,X})
end;
false->
erlang:error({no_file,FileName})
end.
get_comm_tree_erl(Filename) ->
Comms = erl_comment_scan:file(Filename),
Forms = get_forms_erl(Filename),
erl_recomment:recomment_forms(Forms,Comms).
get_tree_beam(Filename) ->
case beam_lib:chunks(Filename,["Abst"]) of
{ok,{_,[{"Abst",AChunk}]}} ->
{_,Forms} = binary_to_term(AChunk),
form_list(Forms);
_ ->
erlang:error({no_debuginfo,Filename})
end.
get_forms_erl(Filename) ->
{ok,Fs} = epp_dodger:parse_file(Filename,[{no_fail, true}]),
Fs.
%%% # tree
%%% turn a syntax tree into html by annotating and pretty-printing
%%% with a hook function
tree(Tree) ->
pout(ann(type(Tree),Tree)).
%%lists:foldl(fun(Form,Acc) -> [pout(ann(Form))|Acc] end, [], Tree).
pout(Form) ->
erl_prettypr:format(Form,[{hook,fun tag/3},{paper,90},{ribbon,650}]).
%%% ## formatting
%%% ### 'tag' - the format hook function
tag(Node,Ctxt,Cont) ->
Tags = get_ann(Node),
case member(has_comment,Tags) of
true ->
PreC = get_precomments(Node),
PostC = get_postcomments(Node),
Nod = remove_comments(Node),
Doc0 = tagit(Tags--[has_comment],Cont(Nod,Ctxt)),
postcomment(precomment(Doc0,PreC),PostC);
false ->
Doc0 = Cont(Node,Ctxt),
tagit(Tags,Doc0)
end.
tagit([],Doc0) ->
Doc0;
tagit(["binary"],{beside,_,{beside,Doc,_}}) ->
beside(floating(text("&lt;&lt;")),beside(Doc,floating(text("&gt;&gt;"))));
tagit([Tag],Doc0) ->
beside(null_text(Tag),beside(Doc0,null_text(etag(Tag)))).
etag("<"++Tag) -> "</"++hd(string:tokens(Tag," "))++">".
%%%### comment stuff
precomment(Doc,PreC) ->
above(floating(break(stack(PreC)), -1, -1), Doc).
postcomment(Doc,PostC) ->
beside(Doc, floating(break(stack(PostC)), 1, 0)).
stack([]) -> empty();
stack([Comm|Comms]) ->
Doc = maybe_pad(stack_comment_lines(comment_text(Comm)),Comm),
case Comms of
[] -> Doc;
_ -> above(Doc, stack(Comms))
end.
maybe_pad(Doc,Comm) ->
case comment_padding(Comm) of
I when is_integer(I), 0 < I -> beside(text(duplicate(I,$ )), Doc);
_ -> Doc
end.
%%% stolen with pride from erl_prettypr
%%% Stack lines of text above each other and prefix each string in
%%% the list with a single `%' character.
stack_comment_lines([S | Ss]) ->
D = tagit([dehtml('span', [{class,comment}])],text("%"++debracket(S))),
case Ss of
[] -> D;
_ -> above(D, stack_comment_lines(Ss))
end;
stack_comment_lines([]) ->
empty().
%%% annotate nodes that should be hilited
%%% the annotation is put on the subtree that should be marked up
%%% the annotation is;
%%% has_comments|Markup
%%% if a node already has an annotation the new one is dropped, except
%%% if either the new or the old one is has_comments
ann(binary,Tree) ->
new_tree(Tree,add_anno("binary",Tree));
ann(application,Tree) ->
Op = application_operator(Tree),
Args = application_arguments(Tree),
new_tree(Tree,application(add_anno(mu(application,Tree),Op),Args));
ann(attribute,Tree) ->
Name = attribute_name(Tree),
case atom_value(Name) of
export ->
AQs = list_elements(hd(attribute_arguments(Tree))),
Args = [list([add_anno(mu(export,Tree),AQ) || AQ <- AQs])];
import ->
[ImportMod,ImportFAs] = attribute_arguments(Tree),
AQs = list_elements(ImportFAs),
Args = [ImportMod,list([add_anno(mu(import,Tree),AQ) || AQ <- AQs])];
define ->
[Macro|Rest] = attribute_arguments(Tree),
case type(Macro) of
application ->
Op = application_operator(Macro),
As = application_arguments(Macro),
Args = [application(add_anno(mu(macro,Tree),Op),As)|Rest];
_ ->
Args = [add_anno(mu(macro,Tree),Macro)|Rest]
end;
record ->
[Rec|Rest] = attribute_arguments(Tree),
Args = [add_anno(mu(record,Tree),Rec)|Rest];
_ ->
Args = attribute_arguments(Tree)
end,
new_tree(Tree,attribute(add_anno(mu(attribute,Tree),Name),Args));
ann(record_access,Tree) ->
Arg = record_access_argument(Tree),
Type = record_access_type(Tree),
Field = record_access_field(Tree),
new_tree(Tree,record_access(Arg,add_anno(mu(record,Tree),Type),Field));
ann(record_expr,Tree) ->
Arg = record_expr_argument(Tree),
Type = record_expr_type(Tree),
Fields = record_expr_fields(Tree),
new_tree(Tree,record_expr(Arg,add_anno(mu(record,Tree),Type),Fields));
ann(record_index_expr,Tree) ->
Type = record_index_expr_type(Tree),
Field = record_index_expr_field(Tree),
new_tree(Tree,record_index_expr(add_anno(mu(record,Tree),Type),Field));
ann(function,Tree) ->
Name = function_name(Tree),
Clauses = function_clauses(Tree),
new_tree(Tree,function(add_anno(mu(function,Tree),Name),Clauses));
ann(macro,Tree) ->
Name = macro_name(Tree),
Args = macro_arguments(Tree),
new_tree(Tree,macro(add_anno(mu(macro,Tree),Name), Args));
ann(string,OTree) ->
Tree = erl_syntax:string(debracket(string_value(OTree))),
new_tree(OTree,add_anno(mu(string,OTree),Tree));
ann(variable,Tree) ->
new_tree(Tree,add_anno(mu(variable,Tree),Tree));
ann(text,Tree) ->
new_tree(Tree,add_anno(mu(error,Tree),Tree));
ann(comment,OTree) ->
Pad = comment_padding(OTree),
Text = [debracket(S) || S <- comment_text(OTree)],
Tree = comment(Pad,Text),
new_tree(OTree,add_anno(mu(comment,OTree),Tree));
ann(_Typ,Tree) ->
new_tree(Tree,Tree).
new_tree(OTree,NTree) ->
Tree =
case has_comments(OTree) of
true -> add_ann(has_comment,copy_comments(OTree,NTree));
false -> NTree
end,
SubTrees = subtrees(Tree),
case [[ann(type(SubT),SubT) || SubT<-Group] || Group<-SubTrees] of
[] -> Tree;
NSubtrees -> update_tree(Tree,NSubtrees)
end.
debracket([]) -> [];
debracket([$>|Str]) -> "&gt;"++debracket(Str);
debracket([$<|Str]) -> "&lt;"++debracket(Str);
debracket([C|Str]) -> [C|debracket(Str)].
add_anno(nil,Tree) -> Tree;
add_anno(Ann,Tree) ->
case get_ann(Tree) of
[] -> add_ann(Ann,Tree);
[has_comment] -> add_ann(Ann,Tree);
_OAnn -> Tree
end.
%%%### the markups
mu(application,Node) ->
Op = application_operator(Node),
Ar = length(application_arguments(Node)),
case type(Op) of
%% variable ->
%% dehtml('span', [{class,variable}]);
atom ->
case is_guard_or_builtin(atom_value(Op),Ar) of
guard -> dehtml('span', [{class,guard}]);
builtin->dehtml('span', [{class,builtin}]);
neither->dehtml('span', [{class,call}])
end;
module_qualifier ->
Mod = module_qualifier_argument(Op),
Fun = module_qualifier_body(Op),
case {type(Mod),type(Fun)} of
{atom,atom} ->
case atom_value(Mod) of
erlang -> dehtml('span', [{class,builtin}]);
_ -> dehtml('span', [{class,call}])
end;
_ ->
nil
end;
_ ->
nil
end;
mu(function = Class, {tree, function, _, {function, _, [{tree, clause, _, {clause, Vars, _, _}} | _]}}) ->
dehtml('span', [{class,Class}, {arity,length(Vars)}]);
mu(Class,_Node) ->
dehtml('span', [{class,Class}]).
dehtml(Tag,Atts) ->
flatten([$<,str(Tag),$ ,[[str(A),"=\"",str(V),"\" "]||{A,V}<-Atts],$>]).
str(I) when is_integer(I) -> integer_to_list(I);
str(A) when is_atom(A) -> atom_to_list(A);
str(L) when is_list(L) -> L.
is_guard_or_builtin(atom,1) ->guard;
is_guard_or_builtin(binary,1) ->guard;
is_guard_or_builtin(constant,1) ->guard;
is_guard_or_builtin(float,1) ->guard;
is_guard_or_builtin(function,1) ->guard;
is_guard_or_builtin(function,2) ->guard;
is_guard_or_builtin(integer,1) ->guard;
is_guard_or_builtin(list,1) ->guard;
is_guard_or_builtin(number,1) ->guard;
is_guard_or_builtin(pid,1) ->guard;
is_guard_or_builtin(port,1) ->guard;
is_guard_or_builtin(reference,1) ->guard;
is_guard_or_builtin(tuple,1) ->guard;
is_guard_or_builtin(record,2) ->guard;
is_guard_or_builtin(record,3) ->guard;
is_guard_or_builtin(F,A) ->
case erlang:function_exported(erlang,F,A) orelse
erlang:is_builtin(erlang,F,A) of
true -> builtin;
false-> neither
end.
+54
View File
@@ -0,0 +1,54 @@
%%%-------------------------------------------------------------------
%%% File : escobar_run.erl
%%% Author : Badlop <badlop@process-one.net>
%%% Purpose : Frontend to run Escobar
%%% Created : 16 Apr 2008 by Badlop <badlop@process-one.net>
%%%-------------------------------------------------------------------
-module(escobar_run).
%%% Download ejabberd_hilite.erl from http://code.google.com/p/erl-escobar/
%%% Example calls:
%%% escobar_run:file("escobar_run.erl", "../ejascobar/").
%%% escobar_run:dir(".", "../ejascobar/").
%%% escobar_run:dir(".", "../doc/api/").
%%% find ./ -type f -name '*.html' -exec sed -i 's/class="function" >\([a-z0-9]*\)</class="function" id="\1">\1</;' {} \;
-export([file/2, file/1, dir/1]).
file([F, OutDir]) ->
file(F, OutDir).
file(F, OutDir) ->
String = escobar_hilite:file(F),
FB = filename:basename(F),
FilenameHTML = filename:join(OutDir, FB ++ ".html"),
escobar_hilite:out(FilenameHTML, String).
dir([SrcDir, OutDir]) ->
SrcDirAbs = filename:absname(SrcDir),
OutDirAbs = filename:absname(OutDir),
Files = get_files([SrcDirAbs]),
lists:foreach(
fun(F) ->
case filename:extension(F) of
".erl" ->
file(F, OutDirAbs);
".hrl" ->
file(F, OutDirAbs);
_ ->
ok
end
end,
Files).
get_files([]) ->
[];
get_files([FHead | FTail]) ->
case catch file:list_dir(FHead) of
{ok, Files} ->
FilesHead = [filename:join(FHead, FilesN) || FilesN <- Files],
get_files(FilesHead ++ FTail);
{error, enotdir} ->
[FHead] ++ get_files(FTail)
end.
Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

+522
View File
@@ -0,0 +1,522 @@
%%%----------------------------------------------------------------------
%%% File : funrelg.erl
%%% Author : Badlop <badlop@process-one.net>
%%% Purpose : Function Relation Graph
%%% Created : 3 Apr 2007 by Badlop <badlop@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2009 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(funrelg).
-author('badlop@process-one.net').
-export([dir/1, file/1, g/0, g/1, gc/0, gc/1, d/0]).
-record(mfa, {mod, func, arity}).
-record(arcs, {id, from, to, occ}).
%% The functions that are not in export and don't call anybody are not drawn
%% The calls to this module that use Mod:Func are drawn as external calls
%%-----------------------------
%% Module handlers
%%-----------------------------
dir([SrcDir, OutDir]) ->
SrcDirAbs = filename:absname(SrcDir),
OutDirAbs = filename:absname(OutDir),
Files = get_files([SrcDirAbs]),
lists:foreach(
fun(F) ->
file(F, OutDirAbs)
end,
Files).
file([SrcDir, OutDir]) ->
SrcFilAbs = filename:absname(SrcDir),
OutDirAbs = filename:absname(OutDir),
file(SrcFilAbs, OutDirAbs).
file(SrcFile, OutDir) ->
case {filename:extension(SrcFile), filename:basename(SrcFile)} of
%% The file must by *.erl, and the first character must be a-z
{".erl", [FirstChar | _]} when (FirstChar >= 97) and (FirstChar =< 122) ->
make_file(SrcFile, OutDir),
d();
_ ->
ok
end.
get_files([]) ->
[];
get_files([FHead | FTail]) ->
case catch file:list_dir(FHead) of
{ok, Files} ->
FilesHead = [filename:join(FHead, FilesN) || FilesN <- Files],
get_files(FilesHead ++ FTail);
{error, enotdir} ->
[FHead] ++ get_files(FTail)
end.
make_file(File, OutDir) ->
FB = filename:basename(File),
FileDot = filename:join(OutDir, FB ++ ".dot"),
Text = gc(File),
{ok,FO}=file:open(FileDot,[write]),
try
io:fwrite(FO,"~s",[Text])
after
file:close(FO)
end,
FileSvg = filename:join(OutDir, filename:basename(File, ".erl") ++ ".svg"),
case os:cmd("dot -Tsvg " ++ FileDot ++ " -o " ++ FileSvg) of
"" -> ok;
ShellResult ->
io:format("Trying to run 'dot', we got this result:~n ~s~n"
"Remember that you need to have Graphviz 'dot' installed.~n", [ShellResult])
end,
ok.
%%====================================================================
%% Internal functions
%%====================================================================
g() ->
g("a.erl").
g(Filename) ->
gc(Filename),
halt().
gc() ->
gc("a.erl").
gc(Filename) ->
{ok, File} = epp_dodger:parse_file(Filename),
ets:new(arcs, [set, public, named_table, {keypos, 2}]),
ets:new(mfa_conversion, [set, public, named_table, {keypos, 1}]),
ets:new(counters, [set, public, named_table]),
ets:insert(counters, {arcs_id, 0}),
ModuleName = get_module_name(File),
Exports = lists:usort(get_exports(File)),
Functions = get_functions(File),
FunctionsParsed = lists:usort(parse_functions(Functions)), % side effects: stores on ets
Privates = FunctionsParsed -- Exports,
%%Externals = get_externals(),
MFAs = get_func_calls(),
AppModules1 = os:cmd("ls -1 ../doc/devdoc/*.html | tr \".\" \" \" | tr \"/\" \" \" | awk '{print $3}'"),
AppModules = [list_to_atom(Str) || Str <- string:tokens(AppModules1, [10])],
ExternalTypes1 = [mfa_to_externaltype(MFA, ModuleName, AppModules, FunctionsParsed) || MFA <- MFAs],
ExternalTypes = lists:usort(ExternalTypes1),
AppExternals = [Function || {Type, Function} <- ExternalTypes, Type == app],
ExmppExternals = [Function || {Type, Function} <- ExternalTypes, Type == exmpp],
OTPExternals = [Function || {Type, Function} <- ExternalTypes, Type == other],
textize(ModuleName, Exports, Privates, AppExternals, ExmppExternals, OTPExternals).
get_arcs_id() ->
ets:update_counter(counters, arcs_id, 1).
insert_arc_normal(FromFunc, FromArity, ToFunc, ToArity) ->
From = #mfa{mod = -1, func = FromFunc, arity = FromArity},
To = #mfa{mod = -1, func = ToFunc, arity = ToArity},
insert_arc(From, To).
insert_arc_external(FromFunc, FromArity, ToMod, ToFunc, ToArity) ->
From = #mfa{mod = -1, func = FromFunc, arity = FromArity},
To = #mfa{mod = ToMod, func = ToFunc, arity = ToArity},
insert_arc(From, To).
insert_arc(From, To) ->
Match = #arcs{
from = From,
to = To,
id='$1',
_='_'},
Select = [{Match, [], ['$1']}],
Ids = ets:select(arcs, Select),
case Ids of
[] ->
ets:insert(arcs,
#arcs{
id = get_arcs_id(),
from = From,
to = To,
occ = 1
}
);
[Id] ->
[Arc] = ets:lookup(arcs, Id),
Arc2 = Arc#arcs{occ = Arc#arcs.occ+1},
ets:insert(arcs, Arc2)
end.
read_arc(Id) ->
ets:lookup(arcs, Id).
d() ->
ets:delete(arcs),
ets:delete(mfa_conversion),
ets:delete(counters).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Get
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
get_module_name(File) ->
Attributes = get_elements(attribute, File),
get_attribute(module, Attributes).
get_exports(File) ->
Attributes = get_elements(attribute, File),
Exports = get_attribute(export, Attributes),
parse_export(Exports).
get_functions(File) ->
get_elements(function, File).
get_elements(Type, L) -> get_elements(Type, L, []).
get_elements(_, [], Res) -> Res;
get_elements(Type, [{tree, Type, _, A} | L], Res) ->
get_elements(Type, L, Res++[A]);
get_elements(Type, [_ | L], Res) ->
get_elements(Type, L, Res).
get_attribute(_, []) -> [];
get_attribute(Name, [{attribute, {tree, atom, _, Name}, [Al]} | As]) ->
case Name of
module ->
{tree, atom, _, Mn} = Al,
Mn;
export ->
{tree, list, _, {list, Exports, _}} = Al,
Exports++get_attribute(Name, As);
_ -> ok
end;
get_attribute(Name, [_ | As]) ->
get_attribute(Name, As).
parse_export(Ex) ->
lists:foldl(
fun(Aq, Res) ->
{tree, arity_qualifier, _, {arity_qualifier, Atom, Inte}} = Aq,
{tree, atom, _, An} = Atom,
{tree, integer, _, In} = Inte,
Res++[{An, In}]
end,
[],
Ex).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Parse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
parse_functions(Functions) ->
lists:map(
fun(E) ->
{function, {_, _, _, Fn}, Clauses} = E,
Arity = get_function_arity(Clauses),
parse_clauses(Fn, Clauses),
{Fn, Arity}
end,
Functions).
parse_clauses(Fn, Clauses) ->
lists:foreach(
fun(E) ->
{tree, clause, L, C} = E,
{attr, _Ln, _, _} = L,
{clause, Parameters, _, Contents} = C,
Fa = length(Parameters),
parse_contents({Fn, Fa}, Contents)
end,
Clauses).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% OLD
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
parse_contents(F, Contents) ->
{_, Res} = lists:foldl(
fun(C, {Fu, R}) ->
{Fu, R++parse_content(F, C)}
end,
{F, []},
Contents),
Res.
parse_content(F, {tree, application, L, A}) ->
{attr, _Ln, _, _} = L,
parse_application(F, A);
parse_content(F, {tree, list, _, {list, [L], Ls}}) ->
RL = parse_content(F, L),
RL++parse_content(F, Ls);
parse_content(F, {tree, tuple, _, T}) ->
parse_contents(F, T);
parse_content(F, {tree, match_expr, _, M}) ->
{match_expr, _, Value} = M,
parse_content(F, Value);
parse_content(F, {tree, try_expr, _, T}) ->
{try_expr, As, Bs, Cs, Ds} = T,
RAs = parse_contents(F, As),
RBs = parse_contents(F, Bs),
RDs = parse_contents(F, Ds),
RAs++RBs++RDs++parse_contents(F, Cs);
parse_content(F, {tree, block_expr, _, Ts}) ->
parse_contents(F, Ts);
parse_content(F, {tree, catch_expr, _, C}) ->
parse_content(F, C);
parse_content(F, {tree, case_expr, _, C}) ->
{case_expr, Case, Cases} = C,
R2 = parse_content(F, Case),
R2++parse_contents(F, Cases);
parse_content(F, {tree, if_expr, _, Cases}) ->
parse_contents(F, Cases);
parse_content(F, {tree, disjunction, _, Cases}) ->
parse_contents(F, Cases);
parse_content(F, {tree, conjunction, _, Cases}) ->
parse_contents(F, Cases);
parse_content(F, {tree, list_comp, _, L}) ->
{list_comp, A, Bs} = L,
RA = parse_content(F, A),
RA++parse_contents(F, Bs);
parse_content(F, {tree, generator, _, G}) ->
{generator, _, Gen} = G,
parse_content(F, Gen);
parse_content(F, {tree, clause, _, C}) ->
{clause, Clause, When, Second} = C,
R2 = parse_contents(F, Clause),
R3 = parse_content(F, When),
R2++R3++parse_contents(F, Second);
parse_content(F, {tree, fun_expr, _, E}) ->
parse_contents(F, E);
parse_content(F, {tree, record_expr, _, E}) ->
{record_expr, _, _, Records} = E,
parse_contents(F, Records);
parse_content(F, {tree, record_field, _, R}) ->
{record_field, F1, F2} = R,
R2 = parse_content(F, F1),
R2++parse_content(F, F2);
parse_content(F, {tree, receive_expr, _, E}) ->
{receive_expr, E1, _, _} = E,
parse_contents(F, E1);
parse_content(F, {tree, infix_expr, _, I}) ->
{infix_expr, _Operator, T1, T2} = I,
R = parse_content(F, T1),
R++parse_content(F, T2);
parse_content(_F, {tree, prefix_expr, _, _P}) ->
[];
parse_content(_F, {tree, class_qualifier, _, _}) -> [];
parse_content(_F, {tree, implicit_fun, _, _}) -> [];
parse_content(_F, {tree, record_access, _, _}) -> [];
parse_content(_F, {tree, record_index_expr, _, _}) -> [];
parse_content(_F, {tree, macro, _, _}) -> [];
parse_content(_F, {tree, binary, _, _}) -> [];
parse_content(_F, {tree, binary_generator, _, _}) -> [];
parse_content(_F, {tree, binary_comp, _, _}) -> [];
parse_content(_F, {integer, _, _I}) -> [];
parse_content(_F, {float, _, _I}) -> [];
parse_content(_F, {string, _, _S}) -> [];
parse_content(_F, {char, _, _S}) -> [];
parse_content(_F, {atom, _, _A}) -> [];
parse_content(_F, {var, _, _V}) -> [];
parse_content(_F, {nil, _}) -> [];
parse_content(_F, none) -> [];
parse_content(_F, C) -> io:format("Unknown content: ~p~n", [C]), [].
parse_application({Fn, Fa}, {application, {atom, _, Name}, Valores}) ->
Arity = length(Valores),
insert_arc_normal(Fn, Fa, Name, Arity),
Ra = [{arc_normal, Fn, Name}],
Ra++parse_contents({Fn, Fa}, Valores);
parse_application({Fn, Fa}, {application, {tree, module_qualifier, _, M}, Tree2}) ->
case M of
{module_qualifier, {_, _, Tf1}, {_, _, Tf2}} ->
ToArity = length(Tree2),
insert_arc_external(Fn, Fa, Tf1, Tf2, ToArity),
parse_contents({Fn, Fa}, Tree2);
_Other ->
%%io:format("Unknown application module_qualifier: ~p~n", [M]),
parse_contents({Fn, Fa}, Tree2)
end;
parse_application({Fn, Fa}, {application, {tree, record_access, _, _}, Tree2}) ->
parse_contents({Fn, Fa}, Tree2);
parse_application({Fn, Fa}, {application, {var, _, _}, Tree2}) ->
parse_contents({Fn, Fa}, Tree2);
parse_application({Fn, Fa}, {application, Other, Tree2}) ->
io:format("Unknown application tree: ~p~n", [Other]),
parse_contents({Fn, Fa}, Tree2).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Textize
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
textize(ModuleName, Exports, Privates, AppExternals, ExmppExternals, OTPExternals) ->
ExportsS = textize_exports(Exports),
PrivatesS = textize_exports(Privates),
AppExternalsS = textize_externals(AppExternals),
ExmppExternalsS = textize_externals(ExmppExternals),
OTPExternalsS = textize_externals(OTPExternals),
Arcs = textize_arcs(),
io_lib:format(
"digraph ~p {~n"++
" label = \"Module ~p\";~n"++
" labelloc = \"t\";~n"++
" fontname = Helvetica;~n"++
" rankdir = LR;~n"++
" ratio = fill;~n"++
%%" node [shape = box, style = filled, color = olivedrab1, fontsize=40];~s~n"++
%%" node [shape = parallelogram, style = filled, color = rosybrown1, fontsize=40];~s~n"++
%%" node [shape = ellipse, style = filled, color = slategray1, peripheries=3, fontsize=40];~n"++
" node [shape = box, color=darkgreen, fillcolor=Honeydew, style=filled, href=\"PRI~p.html#\\N\"];~s~n"++
" node [shape = box, color=darkgreen, fillcolor=PaleGreen, style=filled, href=\"EXP~p.html#\\N\"];~s~n"++
" node [shape = box, color=darkgreen, fillcolor=Aquamarine, style=filled, href=\"APP\\N\"];~s~n"++
" node [shape = box, color=darkblue, fillcolor=LightSkyBlue,style=filled, href=\"EXM\\N\"];~s~n"++
" node [shape = box, color=darkred, fillcolor=PeachPuff, style=filled, href=\"OTP\\N\"];~s~n"++
" node [shape = box];~n"++
"~s"++
"}~n",
[ModuleName, ModuleName,
ModuleName, PrivatesS,
ModuleName, ExportsS,
AppExternalsS,
ExmppExternalsS,
OTPExternalsS,
Arcs]).
textize_exports(Exports) ->
lists:foldl(
fun({Func, Arity}, R) ->
string:concat(R, io_lib:format(" \"~p/~p\";", [Func, Arity]))
end,
"",
Exports).
textize_externals(Externals) ->
lists:foldl(
fun({Mod, Func, Arity}, R) ->
string:concat(R, io_lib:format(" \"~p:~p/~p\";", [Mod, Func, Arity]));
({Func, Arity}, R) ->
string:concat(R, io_lib:format(" \"~p/~p\";", [Func, Arity]))
end,
"",
Externals).
textize_arcs() ->
Id = ets:first(arcs),
textize_arcs(Id, []).
textize_arcs('$end_of_table', Res) -> Res;
textize_arcs(Id, Res) ->
[Arc] = read_arc(Id),
From = mfa_prepare(Arc#arcs.from),
To = mfa_prepare(Arc#arcs.to),
Edge_attrs = check_loop(From, To)++check_occu(Arc#arcs.occ)++check_external(Arc#arcs.to),
Res2 = io_lib:format(" ~s -> ~s~s;~n", [From, To, Edge_attrs]),
Id_next = ets:next(arcs, Id),
textize_arcs(Id_next, string:concat(Res2, Res)).
get_func_calls() ->
Id = ets:first(arcs),
get_func_calls(Id, []).
get_func_calls('$end_of_table', Res) -> Res;
get_func_calls(Id, Res) ->
[Arc] = read_arc(Id),
MFA = Arc#arcs.to,
Call = MFA,
Id_next = ets:next(arcs, Id),
get_func_calls(Id_next, [Call | Res]).
mfa_prepare(MFAinitial) ->
MFA = try_mfa_conversion(MFAinitial),
Mod = case MFA#mfa.mod of
-1 -> "\"";
M -> io_lib:format("\"~p:", [M])
end,
Func = io_lib:format("~p", [MFA#mfa.func]),
Arity = case MFA#mfa.arity of
-1 -> "\"";
A -> io_lib:format("/~p\"", [A])
end,
string:concat(Mod, string:concat(Func, Arity)).
%% noexternal | app | exmpp | other
mfa_to_externaltype(MFA, ModuleName, AppModules, Functions) ->
case MFA of
{mfa, -1, Fu, Ar} ->
case {is_internal, lists:member({Fu, Ar}, Functions)} of
{is_internal, true} ->
{noexternal, {Fu, Ar}};
{is_internal, false} ->
store_mfa_conversion(MFA, {mfa, -1, Fu, Ar}),
{other, {Fu, Ar}}
end;
{mfa, Mo, Fu, Ar} when Mo == ModuleName ->
store_mfa_conversion(MFA, {mfa, -1, Fu, Ar}),
{noexternal, {Fu, Ar}};
{mfa, Mo, Fu, Ar} ->
Type = case {is_app, lists:member(Mo, AppModules)} of
{is_app, true} -> app;
{is_app, false} ->
case string:str(atom_to_list(Mo), "exmpp") of
0 -> other;
N when is_integer(N) -> exmpp
end
end,
{Type, {Mo, Fu, Ar}}
end.
get_function_arity([{tree, clause, _, {clause, Vars, _, _}} | _]) ->
length(Vars);
get_function_arity(E) ->
io:format("Unknown function arity: ~p~n", [E]).
store_mfa_conversion(MFA1, MFA2) ->
ets:insert(mfa_conversion, {MFA1, MFA2}).
try_mfa_conversion(MFA) ->
case ets:lookup(mfa_conversion, MFA) of
[{MFA,MFA2}] ->
MFA2;
[] ->
MFA
end.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Utils
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%check_loop(I, I) -> " [color = sandybrown]";
check_loop(I, I) -> "";
check_loop(_, _) -> "".
check_occu(1) -> "";
check_occu(Occ) -> io_lib:format(" [label=\"~p\"]", [Occ]).
check_external(To) ->
case To#mfa.mod of
-1 -> " [style = bold]";
_ -> ""
end.
+115
View File
@@ -0,0 +1,115 @@
div.navbar table tr td a[target="_parent"] {
background: transparent url("ejabberd-devdoc.png") no-repeat;
display: block;
font-size: 0%;
top: 0;
left: 0;
padding: 0;
margin: 0;
width: 192px;
height: 42px;
}
div.navbar table tr td a img {
border: 0;
padding: 0 0 0 10;
float: right;
}
p i {
display: none;
}
html, body {
font-family: Verdana, sans-serif;
color: #000;
background-color: #fff;
}
h1 {
font-size: 20px;
color: #4a5389;
border-bottom: solid 1px #000;
}
h2 {
font-size: 18px;
text-align: right;
color: #4a5389;
border-bottom: 1px solid #000;
}
h3 {
font-size: 16px;
color: #900;
}
h4 {
font-size: 14px;
color: #000;
}
a[href] {
color: #4a5389;
}
a[href]:hover {
background-color: #ecefff;
}
p, li, dd {
text-align: justify;
}
li {
margin-top: 0.3em;
}
li:first-child {
margin-top: 0px;
}
blockquote {
color: #555;
}
caption {
font-style: italic;
color: #009;
text-align: left;
margin-left: 20px;
}
table[border="1"] {
border-collapse: collapse;
margin-bottom: 1em;
}
table[border="1"] td {
border: 1px solid #ddd;
}
pre, tt, code {
color: #461b7e;
}
pre {
margin:1ex 2ex;
border:1px dashed lightgrey;
background-color:#f9f9f9;
padding:0.5ex;
}
pre em {
font-style: normal;
font-weight: bold;
}
dt {
margin:0ex 2ex;
font-weight:bold;
}
dd {
margin:0ex 0ex 1ex 4ex;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

+136
View File
@@ -0,0 +1,136 @@
\documentclass[a4paper,10pt]{article}
%% Packages
\usepackage{epsfig}
\usepackage{fancyhdr}
\usepackage{graphics}
\usepackage{hevea}
\usepackage[pdftex,colorlinks,unicode,urlcolor=blue,linkcolor=blue,pdftitle=Ejabberd\
Feature\ Sheet,pdfauthor=Sander\
Devrieze,pdfsubject=ejabberd,pdfkeywords=ejabberd]{hyperref}
\usepackage{verbatim}
\usepackage{color}
%% Index
% Remove the index anchors from the HTML version to save size and bandwith.
\newcommand{\ind}[1]{\begin{latexonly}\index{#1}\end{latexonly}}
%% Images
\newcommand{\logoscale}{0.7}
\newcommand{\imgscale}{0.58}
\newcommand{\insimg}[1]{\insscaleimg{\imgscale}{#1}}
\newcommand{\insscaleimg}[2]{
\imgsrc{#2}{}
\begin{latexonly}
\scalebox{#1}{\includegraphics{#2}}
\end{latexonly}
}
%% Various
\newcommand{\bracehack}{\def\{{\char"7B}\def\}{\char"7D}}
\newcommand{\titem}[1]{\item[\bracehack\texttt{#1}]}
\newcommand{\ns}[1]{\texttt{#1}}
\newcommand{\jid}[1]{\texttt{#1}}
\newcommand{\option}[1]{\texttt{#1}}
\newcommand{\poption}[1]{{\bracehack\texttt{#1}}}
\newcommand{\node}[1]{\texttt{#1}}
\newcommand{\term}[1]{\texttt{#1}}
\newcommand{\shell}[1]{\texttt{#1}}
\newcommand{\ejabberd}{\texttt{ejabberd}}
\newcommand{\Jabber}{Jabber}
%% Title page
\include{version}
\title{Ejabberd \version\ Feature Sheet}
\author{Sander Devrieze \\
\ahrefurl{mailto:s.devrieze@pandora.be} \\
\ahrefurl{xmpp:sander@devrieze.dyndns.org}}
% Options
\newcommand{\marking}[1]{\textbf{\begin{large}\textcolor{ejblue}{#1}\end{large}}} % Marking enabled
\newcommand{\quoting}[2][yozhik]{\begin{quotation}\textcolor{#1}{\textit{#2}}\end{quotation}} % Quotes enabled
\newcommand{\new}{\marginpar{\textcolor{red}{\textsc{new}}}} % Highlight new features
\newcommand{\improved}{\marginpar{\textcolor{orange}{\textsc{improved}}}} % Highlight improved features
\setcounter{secnumdepth}{-1} % Disable section numbering
%% To by-pass errors in the HTML version.
\newstyle{SPAN}{width:20\%; float:right; text-align:left; margin-left:auto;}
\definecolor{orange} {cmyk}{0.000,0.333,1.000,0.000}
%% Footnotes
\begin{latexonly}
\global\parskip=9pt plus 3pt minus 1pt
\global\parindent=0pt
\gdef\ahrefurl#1{\href{#1}{\texttt{#1}}}
\gdef\footahref#1#2{#2\footnote{\href{#1}{\texttt{#1}}}}
\end{latexonly}
\newcommand{\txepref}[2]{\footahref{http://www.xmpp.org/extensions/xep-#1.html}{#2}}
\newcommand{\xepref}[1]{\txepref{#1}{XEP-#1}}
%% Fancy header
\fancyhf{}
\pagestyle{fancy}
\rhead{\textcolor{ejblue}{The Expandable Jabber/XMPP Daemon.}}
\renewcommand{\headrule}{{\color{ejblue}%
\hrule width\headwidth height\headrulewidth \vskip-\headrulewidth}}
\lhead{\setlength{\unitlength}{-6mm}
\begin{picture}(0,0)
\put(5.8,3.25){\includegraphics[width=1.3\textwidth]{yozhikheader.png}}
\end{picture}}
% Official ejabberd colours
\definecolor{ejblue} {cmyk}{1.000,0.831,0.000,0.537} %RGB: 0,0,118 HTML: 000076
\definecolor{ejgreenyellow}{cmyk}{0.079,0.000,0.275,0.102} %RGB: 209,229,159 HTML: d1e59f
\definecolor{ejgreendark} {cmyk}{0.131,0.000,0.146,0.220} %RGB: 166,199,162 HTML: a6c7a2
\definecolor{ejgreen} {cmyk}{0.077,0.000,0.081,0.078} %RGB: 216,236,215 HTML: d8ecd7
\definecolor{ejgreenwhite} {cmyk}{0.044,0.000,0.048,0.020} %RGB: 239,250,238 HTML: effaee
\definecolor{yozhik} {cmyk}{0.000,0.837,1.000,0.424} %RGB: 147,0,0 HTML: 930000
\begin{document}
\label{titlepage}
\begin{titlepage}
\maketitle{}
\thispagestyle{empty}
\begin{center}
{\insscaleimg{\logoscale}{logo.png}
\par
}
\end{center}
\quoting{I can thoroughly recommend ejabberd for ease of setup --
Kevin Smith, Current maintainer of the Psi project}
\end{titlepage}
\newpage
% Set the page counter to 2 so that the titlepage and the second page do not
% have the same page number. This fixes the PDFLaTeX warning "destination with
% the same identifier".
\begin{latexonly}
\setcounter{page}{2}
\pagecolor{ejgreenwhite}
\end{latexonly}
% Input introduction.tex
\input{introduction}
\end{document}
%% TODO
% * illustrations (e.g. screenshot from web interface)
% * commented parts
% * slides, guide and html version
% * cleaning and improving LaTeX code
% * key features: something like this (shorter)? (more focussed on Erlang now): "To reach the goal of high
% availability, performance and clustering, ejabberd is written in Erlang, a programming language perfectly
% suited for this. Besides that, some parts are written in C to also incude the advantages of this language. In
% short, ejabberd is a perfect mix of mainly Erlang code, peppered with some C code to get the final touch!"
% <picture of a cocktail>
% * key features: saying that ejabberd the only XMPP server is that can do real clustering:
% http://www.jivesoftware.org/forums/thread.jspa?threadID=14602
% "What I find interesting is that *no* XMPP servers truly provide clustering. This includes all the commercial
% servers. The one partial exception appears to be ejabberd, which can cluster certain data such as sessions,
% but not all services such as MUC."
% * try it today: links to migration tutorials
-1354
View File
File diff suppressed because it is too large Load Diff
+5595 -980
View File
File diff suppressed because it is too large Load Diff
+132
View File
@@ -0,0 +1,132 @@
\chapter{Introduction}
\label{intro}
%% TODO: improve the feature sheet with a nice table to highlight new features.
\quoting{I just tried out ejabberd and was impressed both by ejabberd itself and the language it is written in, Erlang. ---
Joeri}
%ejabberd is a free and open source instant messaging server written in Erlang. ejabberd is cross-platform, distributed, fault-tolerant, and based on open standards to achieve real-time communication (Jabber/XMPP).
\ejabberd{} is a \marking{free and open source} instant messaging server written in \footahref{http://www.erlang.org/}{Erlang/OTP}.
\ejabberd{} is \marking{cross-platform}, distributed, fault-tolerant, and based on open standards to achieve real-time communication.
\ejabberd{} is designed to be a \marking{rock-solid and feature rich} XMPP server.
\ejabberd{} is suitable for small deployments, whether they need to be \marking{scalable} or not, as well as extremely big deployments.
%\subsection{Layout with example deployment (title needs a better name)}
%\label{layout}
%In this section there will be a graphical overview like these:\\
%\verb|http://www.tipic.com/var/timp/timp_dep.gif| \\
%\verb|http://www.jabber.com/images/jabber_Com_Platform.jpg| \\
%\verb|http://www.antepo.com/files/OPN45systemdatasheet.pdf| \\
%A page full with names of Jabber client that are known to work with ejabberd. \begin{tiny}tiny font\end{tiny}
%\subsection{Try It Today}
%\label{trytoday}
%(Not sure if I will include/finish this section for the next version.)
%\begin{itemize}
%\item Erlang REPOS
%\item Packages in distributions
%\item Windows binary
%\item source tar.gz
%\item Migration from Jabberd14 (and so also Jabberd2 because you can migrate from version 2 back to 14) and Jabber Inc. XCP possible.
%\end{itemize}
\newpage
\section{Key Features}
\label{keyfeatures}
\ind{features!key features}
\quoting{Erlang seems to be tailor-made for writing stable, robust servers. ---
Peter Saint-Andr\'e, Executive Director of the Jabber Software Foundation}
\ejabberd{} is:
\begin{itemize}
\item \marking{Cross-platform:} \ejabberd{} runs under Microsoft Windows and Unix derived systems such as Linux, FreeBSD and NetBSD.
\item \marking{Distributed:} You can run \ejabberd{} on a cluster of machines and all of them will serve the same \Jabber{} domain(s). When you need more capacity you can simply add a new cheap node to your cluster. Accordingly, you do not need to buy an expensive high-end machine to support tens of thousands concurrent users.
\item \marking{Fault-tolerant:} You can deploy an \ejabberd{} cluster so that all the information required for a properly working service will be replicated permanently on all nodes. This means that if one of the nodes crashes, the others will continue working without disruption. In addition, nodes also can be added or replaced `on the fly'.
\item \marking{Administrator Friendly:} \ejabberd{} is built on top of the Open Source Erlang. As a result you do not need to install an external database, an external web server, amongst others because everything is already included, and ready to run out of the box. Other administrator benefits include:
\begin{itemize}
\item Comprehensive documentation.
\item Straightforward installers for Linux, Mac OS X, and Windows. %%\improved{}
\item Web Administration.
\item Shared Roster Groups.
\item Command line administration tool. %%\improved{}
\item Can integrate with existing authentication mechanisms.
\item Capability to send announce messages.
\end{itemize}
\item \marking{Internationalized:} \ejabberd{} leads in internationalization. Hence it is very well suited in a globalized world. Related features are:
\begin{itemize}
\item Translated to 24 languages. %%\improved{}
\item Support for \footahref{http://www.ietf.org/rfc/rfc3490.txt}{IDNA}.
\end{itemize}
\item \marking{Open Standards:} \ejabberd{} is the first Open Source Jabber server claiming to fully comply to the XMPP standard.
\begin{itemize}
\item Fully XMPP compliant.
\item XML-based protocol.
\item \footahref{http://www.ejabberd.im/protocols}{Many protocols supported}.
\end{itemize}
\end{itemize}
\newpage
\section{Additional Features}
\label{addfeatures}
\ind{features!additional features}
\quoting{ejabberd is making inroads to solving the "buggy incomplete server" problem ---
Justin Karneges, Founder of the Psi and the Delta projects}
Moreover, \ejabberd{} comes with a wide range of other state-of-the-art features:
\begin{itemize}
\item Modular
\begin{itemize}
\item Load only the modules you want.
\item Extend \ejabberd{} with your own custom modules.
\end{itemize}
\item Security
\begin{itemize}
\item SASL and STARTTLS for c2s and s2s connections.
\item STARTTLS and Dialback s2s connections.
\item Web Admin accessible via HTTPS secure access.
\end{itemize}
\item Databases
\begin{itemize}
\item Internal database for fast deployment (Mnesia).
\item Native MySQL support.
\item Native PostgreSQL support.
\item ODBC data storage support.
\item Microsoft SQL Server support. %%\new{}
\end{itemize}
\item Authentication
\begin{itemize}
\item Internal Authentication.
\item PAM, LDAP and ODBC. %%\improved{}
\item External Authentication script.
\end{itemize}
\item Others
\begin{itemize}
\item Support for virtual hosting.
\item Compressing XML streams with Stream Compression (\xepref{0138}).
\item Statistics via Statistics Gathering (\xepref{0039}).
\item IPv6 support both for c2s and s2s connections.
\item \txepref{0045}{Multi-User Chat} module with support for clustering and HTML logging. %%\improved{}
\item Users Directory based on users vCards.
\item \txepref{0060}{Publish-Subscribe} component with support for \txepref{0163}{Personal Eventing via Pubsub}.
\item Support for web clients: \txepref{0025}{HTTP Polling} and \txepref{0206}{HTTP Binding (BOSH)} services.
\item Component support: interface with networks such as AIM, ICQ and MSN installing special tranports.
\end{itemize}
\end{itemize}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+62
View File
@@ -0,0 +1,62 @@
Release notes
ejabberd 0.9.1
This document describes the main changes from [25]ejabberd 0.9.
The code can be downloaded from the [26]download page.
For more detailed information, please refer to ejabberd [27]User Guide.
Groupchat (Multi-user chat and IRC) improvements
The multi-user chat code has been improved to comply with the latest version
of Jabber Enhancement Proposal 0045.
The IRC (Internet Relay Chat) features now support WHOIS and USERINFO
requests.
Web interface
ejabberd modules management features have been added to the web interface.
They now allow to start or stop extension module without restarting the
ejabberd server.
Publish and subscribe
It is now possible to a subscribe node with a JabberID that includes a
resource.
Translations
A new script has been included to help translate ejabberd into new languages
and maintain existing translations.
As a result, ejabberd is now translating into 10 languages:
* Dutch
* English
* French
* German
* Polish
* Portuguese
* Russian
* Spanish
* Swedish
* Ukrainian
Migration
No changes have been made to the database. No particular conversion steps
are needed. However, you should backup your database before upgrading to a
new ejabberd version.
Bugfixes
This release contains several bugfixes and architectural changes. Please
refer to the Changelog file supplied with this release for details of all
improvements in the ejabberd code.
+99
View File
@@ -0,0 +1,99 @@
Release notes
ejabberd 0.9.8
2005-08-01
This document describes the main changes in ejabberd 0.9.8. This
version prepares the way for the release of ejabberd 1.0, which
is due later this year.
The code can be downloaded from the Process-one website:
http://www.process-one.net/en/projects/ejabberd/
For more detailed information, please refer to ejabberd User Guide
on the Process-one website:
http://www.process-one.net/en/projects/ejabberd/docs.html
Recent changes include....
Enhanced virtual hosting
Virtual hosting applies to many more setting options and
features and is transparent. Virtual hosting accepts different
parameters for different virtual hosts regarding the following
features: authentication method, access control lists and access
rules, users management, statistics, and shared roster. The web
interface gives access to each virtual host's parameters.
Enhanced Publish-Subscribe module
ejabberd's Publish-Subscribe module integrates enhancements
coming from J-EAI, an XMPP-based integration server built on
ejabberd. ejabberd thus supports Publish-Subscribe node
configuration. It is possible to define nodes that should be
persistent, and the number of items to persist. Besides that, it
is also possible to define various notification parameters, such
as the delivery of the payload with the notifications, and the
notification of subscribers when some changes occur on items.
Other examples are: the maximum size of the items payload, the
subscription approvers, the limitation of the notification to
online users only, etc.
Code reorganisation and update
- The mod_register module has been cleaned up.
- ODBC support has been updated and several bugs have been fixed.
Development API
To ease the work of Jabber/XMPP developers, a filter_packet hook
has been added. As a result it is possible to develop plugins to
filter or modify packets flowing through ejabberd.
Translations
- Translations have been updated to support the new Publish-Subscribe features.
- A new Brazilian Portuguese translation has been contributed.
Web interface
- The CSS stylesheet from the web interface is W3C compliant.
Installers
Installers are provided for Microsoft Windows and Linux/x86. The
Linux installer includes Erlang ASN.1 modules for LDAP
authentication support.
Bugfixes
- This release contains several bugfixes and architectural
changes. Among other bugfixes include improvements in LDAP
authentication. Please refer to the ChangeLog file supplied
with this release regarding all improvements in ejabberd.
References
The ejabberd feature sheet helps comparing with other Jabber/XMPP
servers:
http://www.process-one.net/en/projects/ejabberd/docs/features.pdf
Contributed tutorials of interest are:
- Migration from Jabberd1.4 to ejabberd:
http://ejabberd.jabber.ru/jabberd1-to-ejabberd
- Migration from Jabberd2 to ejabberd:
http://ejabberd.jabber.ru/jabberd2-to-ejabberd
- Transport configuration for connecting to other networks:
http://ejabberd.jabber.ru/tutorials-transports
END
+120
View File
@@ -0,0 +1,120 @@
Release Notes
ejabberd 1.0.0
14 December 2005
This document describes the main changes in ejabberd 1.0.0. Unique in this
version is the compliancy with the XMPP (eXtensible Messaging and Presence
Protocol) standard. ejabberd is the first Open Source Jabber server claiming
to fully comply to the XMPP standard.
ejabberd can be downloaded from the Process-one website:
http://www.process-one.net/en/projects/ejabberd/
Detailed information can be found in the ejabberd Feature Sheet and User
Guide which are available on the Process-one website:
http://www.process-one.net/en/projects/ejabberd/docs.html
Recent changes include:
Server-to-server Encryption for Enhanced Security
- Support for STARTTLS and SASL EXTERNAL to secure server-to-server traffic
has been added.
- Also, STARTTLS and Dialback has been implemented for server-to-server (s2s)
connections. Detailed information about these new features can be found on
http://ejabberd.jabber.ru/s2s-encryption
- commonName and dNSName fields matching were introduced to ease the process
of retrieving certificates.
- Different certificates can be defined for each virtual host.
ODBC Support
- ODBC support has been improved to allow production use of ejabberd with
relational databases.
- Support for vCard storage in ODBC has been added.
- ejd2odbc.erl is a tool to convert an installation from Erlang's database
Mnesia to an ODBC compatible relational database.
Native PostgreSQL Support
- Native PostgreSQL support gives you a better performance when you use
PostgreSQL.
Shared Roster groups
- Shared Roster groups support has been enhanced. New is the ability to add
all registered users to everyone's roster. Detailed information about this
new feature can be found on http://ejabberd.jabber.ru/shared-roster-all
Web Interface
- The web interface internal code has been modified for better integration
and compliancy with J-EAI, an ejabberd-based Enterprise Application
Integration platform.
- More XHTML 1.0 Transitional compliancy work was done.
Transports
- A transport workaround can be enabled during compilation. To do this, you
can pass the "--enable-roster-gateway-workaround" option to the configure
script. (./configure --enable-roster-gateway-workaround)
This option allows transports to add items with subscription "to" in the
roster by sending <presence type='subscribed'/> stanza to user. This option
is only needed for JIT ICQ transport.
Warning: by enabling this option, ejabberd will not be fully XMPP compliant
anymore.
Documentation and Internationalization
- Documentation has been extended to cover more topics.
- Translations have been updated.
Bugfixes
- This release contains several bugfixes.
- Among other bugfixes include improvements to the client-to-server (c2s)
connection management module.
- Please refer to the ChangeLog file supplied
with this release regarding all improvements in ejabberd.
Installation Notes
Supported Erlang Version
- You need at least Erlang/OTP R9C to run ejabberd 1.0.0.
Installation
Installers are provided for Microsoft Windows and Linux/x86.
Installers can be retrieved from:
http://www.process-one.net/en/projects/ejabberd/download.html
Migration Notes
- Before any migration, ejabberd system and database must be properly
backed up.
- When upgrading an ODBC-based installation, you will need to change the
relational database schema. The following SQL commands must be run on the
database:
CREATE SEQUENCE spool_seq_seq;
ALTER TABLE spool ADD COLUMN seq integer;
ALTER TABLE spool ALTER COLUMN seq SET DEFAULT nextval('spool_seq_seq');
UPDATE spool SET seq = DEFAULT;
ALTER TABLE spool ALTER COLUMN seq SET NOT NULL;
References
Contributed tutorials of interest are:
- Migration from Jabberd1.4 to ejabberd:
http://ejabberd.jabber.ru/jabberd1-to-ejabberd
- Migration from Jabberd2 to ejabberd:
http://ejabberd.jabber.ru/jabberd2-to-ejabberd
- Transport configuration for connecting to other networks:
http://ejabberd.jabber.ru/tutorials-transports
END
+115
View File
@@ -0,0 +1,115 @@
Release Notes
ejabberd 1.1.0
24 April 2006
This document describes the main changes in ejabberd 1.1.0. This version
introduce new features including support for new Jabber Enhancement
Proposals and several performance improvements enabling deployments on an
even larger scale than already possible.
ejabberd can be downloaded from the Process-one website:
http://www.process-one.net/en/projects/ejabberd/
Detailed information can be found in the ejabberd Feature Sheet and User
Guide which are available on the Process-one website:
http://www.process-one.net/en/projects/ejabberd/docs.html
A complete list of changes is available from:
http://support.process-one.net/secure/ReleaseNote.jspa?projectId=10011&styleName=Html&version=10025
Recent changes include:
New Jabber Enhancement Proposal support:
- JEP-0050: Ad-Hoc Commands.
- JEP-0138: Stream Compression.
- JEP-0175: SASL anonymous.
Anonymous login
- SASL anonymous.
- Anonymous login for clients that do not yet support SASL Anonymous.
Relational database Support
- MySQL is now fully supported through ODBC and in native mode.
- Various improvements to the native database interfaces.
- The migration tool can use relational databases.
Multi-User Chat improvements
- Logging of room discussion to text file is now supported.
- Better reconfiguration support.
- Security oriented fixes.
- Several improvements and updates to latest JEP-0045.
Performance scalability improvements for large clusters
- Improved session synchronisation management between cluster nodes.
- Internal architecture has been reworked to use generalize Erlang/OTP
framework usage.
- Speed improvement on logger.
- TCP/IP packet reception change for better network throttling and
regulation.
As a result, these improvements will reduce load on large scale deployments.
XMPP Protocol related improvements
- XML stanza size can be limited.
- Messages are send to all resources with the same highest priority.
Documentation and Internationalization
- Documentation has been extended to cover more topics.
- Translations have been updated.
Web interface
- XHTML 1.0 compliance.
Bugfixes
- This release contains many bugfixes on various areas such as Publish-Subscribe, build
chain, installers, IRC gateway, ejabberdctl, amongst others.
- Please refer to the ChangeLog file supplied with this release regarding
all improvements in ejabberd.
Installation Notes
Supported Erlang Version
- You need at least Erlang/OTP R9C-2 to run ejabberd 1.1.0.
Installation
Installers are provided for Microsoft Windows, Linux/x86 and MacOSX/PPC.
Installers can be retrieved from:
http://www.process-one.net/en/projects/ejabberd/download.html
Migration Notes
- Before any migration, ejabberd system and database must be properly
backed up.
- The database schema has not been changed comparing to version 1.0.0 and
consequently it does not require any migration.
References
Contributed tutorials and documents of interest are:
- Migration from Jabberd1.4, Jabberd2 and WPJabber to ejabberd:
http://ejabberd.jabber.ru/migrate-to-ejabberd
- Transport configuration for connecting to other networks:
http://ejabberd.jabber.ru/tutorials-transports
- Using ejabberd with MySQL native driver:
http://support.process-one.net/doc/display/MESSENGER/Using+ejabberd+with+MySQL+native+driver
- Anonymous User Support:
http://support.process-one.net/doc/display/MESSENGER/Anonymous+users+support
- Frequently Asked Questions:
http://ejabberd.jabber.ru/faq
END
+119
View File
@@ -0,0 +1,119 @@
Release Notes
ejabberd 1.1.1
28 April 2006
This document describes the main changes in ejabberd 1.1.x. This version
introduce new features including support for new Jabber Enhancement
Proposals and several performance improvements enabling deployments on an
even larger scale than already possible.
This release fix a security issue introduced in ejabberd 1.1.0. In SASL
mode, anonymous login was enabled as a default. Upgrading ejabberd 1.1.0 to
ejabberd 1.1.1 is highly recommended.
ejabberd can be downloaded from the Process-one website:
http://www.process-one.net/en/projects/ejabberd/
Detailed information can be found in the ejabberd Feature Sheet and User
Guide which are available on the Process-one website:
http://www.process-one.net/en/projects/ejabberd/docs.html
A complete list of changes is available from:
http://support.process-one.net/secure/ReleaseNote.jspa?projectId=10011&styleName=Html&version=10025
Recent changes include:
New Jabber Enhancement Proposal support:
- JEP-0050: Ad-Hoc Commands.
- JEP-0138: Stream Compression.
- JEP-0175: SASL anonymous.
Anonymous login
- SASL anonymous.
- Anonymous login for clients that do not yet support SASL Anonymous.
Relational database Support
- MySQL is now fully supported through ODBC and in native mode.
- Various improvements to the native database interfaces.
- The migration tool can use relational databases.
Multi-User Chat improvements
- Logging of room discussion to text file is now supported.
- Better reconfiguration support.
- Security oriented fixes.
- Several improvements and updates to latest JEP-0045.
Performance scalability improvements for large clusters
- Improved session synchronisation management between cluster nodes.
- Internal architecture has been reworked to use generalize Erlang/OTP
framework usage.
- Speed improvement on logger.
- TCP/IP packet reception change for better network throttling and
regulation.
As a result, these improvements will reduce load on large scale deployments.
XMPP Protocol related improvements
- XML stanza size can be limited.
- Messages are send to all resources with the same highest priority.
Documentation and Internationalization
- Documentation has been extended to cover more topics.
- Translations have been updated.
Web interface
- XHTML 1.0 compliance.
Bugfixes
- This release contains many bugfixes on various areas such as Publish-Subscribe, build
chain, installers, IRC gateway, ejabberdctl, amongst others.
- Please refer to the ChangeLog file supplied with this release regarding
all improvements in ejabberd.
Installation Notes
Supported Erlang Version
- You need at least Erlang/OTP R9C-2 to run ejabberd 1.1.0.
Installation
Installers are provided for Microsoft Windows, Linux/x86 and MacOSX/PPC.
Installers can be retrieved from:
http://www.process-one.net/en/projects/ejabberd/download.html
Migration Notes
- Before any migration, ejabberd system and database must be properly
backed up.
- The database schema has not been changed comparing to version 1.0.0 and
consequently it does not require any migration.
References
Contributed tutorials and documents of interest are:
- Migration from Jabberd1.4, Jabberd2 and WPJabber to ejabberd:
http://ejabberd.jabber.ru/migrate-to-ejabberd
- Transport configuration for connecting to other networks:
http://ejabberd.jabber.ru/tutorials-transports
- Using ejabberd with MySQL native driver:
http://support.process-one.net/doc/display/MESSENGER/Using+ejabberd+with+MySQL+native+driver
- Anonymous User Support:
http://support.process-one.net/doc/display/MESSENGER/Anonymous+users+support
- Frequently Asked Questions:
http://ejabberd.jabber.ru/faq
END
+119
View File
@@ -0,0 +1,119 @@
Release Notes
ejabberd 1.1.2
27 September 2006
This document describes the main changes in ejabberd 1.1.2.
This version is a major improvement over ejabberd 1.1.1, improving the
overall behaviour of the server in many areas. Users of ejabberd 1.1.1
should upgrade to this new release for improved robustness and compliance.
ejabberd can be downloaded from the Process-one website:
http://www.process-one.net/en/projects/ejabberd/
Detailed information can be found in the Feature Sheet and in the
Installation and Operation Guide which are both available on the
Process-one website:
http://www.process-one.net/en/projects/ejabberd/docs.html
ejabberd includes 44 improvements. A complete list of changes can be
retrieved from:
http://redir.process-one.net/ejabberd-1.1.2
Recent changes include:
LDAP Improvements
- Major improvements have been made on the LDAP module. It is now more
flexible and more robust.
HTTP Polling Fixes
- The HTTP polling modules have been fixed and improved: the connections are
closed properly and polled messages cannot be lost anymore.
Roster Management Improvement
- Roster management improvements increase reliability, especially in cases
where users are on different servers.
- Shared rosters are more reliable.
Improved Robustness
- It is now possible to limit the number of opened connections for a single
user.
Relational databases
- Database support: Microsoft SQL Server is now officially supported in ODBC
mode.
Publish-Subscribe Improvement
- Restricting node creation with a dedicated ACL rule is now possible.
Localization
- A Czech translation has been added.
- Translations have been updated.
Binary Installer
- New binary installer for Windows including all requirements.
- Improved installers for Linux and MacOSX (PowerPC)
XMPP Compliancy
- Some protocol compliance fix have been added, after the Portland XMPP
Interop Meeting in July.
Miscelanous
- MUC have been improved (logging rendering).
- The command line tool ejabberdctl has been improved.
- The build chain has been improved, including MacOSX support.
- The documentation has been improved and updated to describe the new
features.
Bugfixes
- Anonymous login bugfixes.
- Please refer to the ChangeLog file supplied with this release regarding
all improvements in ejabberd.
Installation Notes
Supported Erlang Version
- You need at least Erlang/OTP R9C-2 to run ejabberd 1.1.2.
- The recommanded version is Erlang/OTP R10B-10.
- Erlang/OTP R11B has not yet been fully certified for ejabberd.
Installation
Installers are provided for Microsoft Windows, Linux/x86 and MacOSX/PPC.
They can be retrieved from:
http://www.process-one.net/en/projects/ejabberd/download.html
Migration Notes
- Before any migration, ejabberd system and database must be properly
backed up.
- The relational database schema has changed between version 1.1.1 and
1.1.2. An "askmessage" column needs to be added in the "rosterusers" table
to perform the migration.
References
Contributed tutorials and documents of interest are:
- Migration from other XMPP servers to ejabberd:
http://ejabberd.jabber.ru/migrate-to-ejabberd
- Transport configuration for connecting to other networks:
http://ejabberd.jabber.ru/tutorials-transports
- Frequently Asked Questions:
http://ejabberd.jabber.ru/faq
END
+14
View File
@@ -0,0 +1,14 @@
Release Notes
ejabberd 1.1.3
2 February 2007
ejabberd 1.1.3 is a security fix release for ejabberd roster ODBC
module.
The upgrade is only necessary if you are using ejabberd with the
mod_roster_odbc.
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/projects/ejabberd/
END
+31
View File
@@ -0,0 +1,31 @@
Release Notes
ejabberd 1.1.4
3 september 2007
ejabberd 1.1.4 is a bugfix release for ejabberd 1.1.x branch.
ejabberd 1.1.4 includes 10 improvements. A complete list of changes
can be retrieved from:
http://redir.process-one.net/ejabberd-1.1.4
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/projects/ejabberd/
Recent changes include:
- Better LDAP support.
- Support for UTF-8 with MySQL 5.
- Roster migration script bugfixes.
- Performance improvements on user removal.
- Traffic shapers bugfix.
- Configuration: host value is now case insensitive.
- Build: ejabberd.cfg file is not overwritten with 'make install' command.
Bugs report
You can officially report bugs on Process-one support site:
http://support.process-one.net/
END
+208
View File
@@ -0,0 +1,208 @@
Release Notes
ejabberd 2.0.0
21 February 2008
ejabberd 2.0.0 is a major new version for ejabberd adding plenty of
new features, performance and scalability improvements and
architectural changes.
ejabberd 2.0.0 includes more than 200 improvements over ejabberd
1.1.x. A complete list of changes can be retrieved from:
http://redir.process-one.net/ejabberd-2.0.0
The new code can be downloaded from ejabberd downloads page:
http://www.process-one.net/en/ejabberd/
Recent changes include:
* Clustering and Architecture
- New front-end and back-end cluster architecture for better
scalability and robustness. Back-end nodes are able to run a fully
fault-tolerant XMPP router and services, but you can now deploy
many front-end nodes to share the load without needing to synchronize
any state with the back-ends.
- All components now run in cluster mode (For example, Multi-User chat
service and file transfer proxy).
- New load balancing algorithm to support Multi-User chat and gateways
clustering. More generally it supports any external component load
balancing.
- ejabberd watchdog to receive warning on suspicious resources consumption.
- Traffic shapers are now supported on components. This protect
ejabberd from components and gateways abuses.
* Publish and Subscribe
- Complete rewrite of the PubSub module. The new PubSub module is
plugin-based, allowing developers to create new nodes type. Any
application can be plugged to ejabberd and can provide rich presence
as a pubsub plugin.
- Personal Eventing via Pubsub support (XEP-0163). This module is
implemented as a PubSub service. It supports user mood (XEP-107),
User Tune (XEP-118), user location (XEP-0080) or user avatar
(XEP-0084) for example.
* Server to Server (s2s)
- More robust code with connection timeout implementation.
- Support for multiple s2s connections per domain.
- s2s whitelist and blacklist support.
- s2s retrial interval.
* LDAP
- Many enterprise-class enhancements such as better behaviour under
heavy load.
- Support for LDAP servers pool.
- Simplified use of virtual hosting with LDAP with domain substitution
in config.
- Ability to match on several userid attributes.
* Multi-User Chat
- Clustering and load balancing support.
- Ability to define default room configuration in ejabberd config file.
- Many anti abuse features have been added:
. New ACL to limit the creation of persistent room to authorized users.
. Ability to define the maximum number of users per room.
. Limitation of the rate of message and presence packets.
. Limitation of the maximum number of room a user can join at the same time.
* File Transfer
- XEP-0065 - Proxy65 file transfer proxy. The proxy can run in
cluster mode.
* Authentication
- PAM (Pluggable Authentication Modules) support on *nix systems.
- External Authentication protocol is now fully documented.
* Web Client Support
- XEP-0124 - BOSH support: BOSH (Bidirectional-streams Over
Synchronous HTTP) was formerly known as "HTTP binding". It provides
an efficient alternative to HTTP polling for scalable Web based chat
solutions.
- HTTP module can now serve static documents (with
mod_http_fileserver). It is needed for high-performance Web 2.0 chat
/ IM application. System administrators can now avoid using a proxy
(like Apache) that handles much less simultaneous than ejabberd HTTP
module.
- Added limitations enforcement on HTTP poll and HTTP bind modules
(bandwidth, packet size).
* System Administration
- XEP-0133 - Service administration support. System administrators can
now perform lot of ejabberd related admin tasks from their XMPP
client, through adhoc commands.
- Dynamic log levels: Improved logging with more log levels. You can
now change the loglevel at run time. No performance penalty is
involved when less verbose levels are used.
- The ejabberdctl command-line administration script now can start
and stop ejabberd. It also includes other useful options.
* Localization
- ejabberd is now translated to 24 languages: Catalan, Chinese, Czech,
Dutch, English, Esperanto, French, Galician, German, Italian, Japanese,
Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Slovak,
Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese, Walloon.
* Build and Installer
- Many launch script improvements.
- New translations. The binary installer is now available in Chinese,
Dutch, English, French, German, Spanish, Russian.
- Makefile now implements uninstall command.
- Full MacOSX compliance in Makefile.
- Configure script is clever at finding libraries in unusual places.
* Development API
- Several hooks have been added for module developers (most notably
presence related hooks).
- HTTP request handler to write HTTP based plugins.
- Manage connections IP address.
* Bugfixes
- ejabberd 2.0.0 also fixes numerous small bugs :) Read the full
changelog for details.
Important Note:
- Since this release, ejabberd requires Erlang R10B-5 or higher.
R11B-5 is the recommended version. R12 is not yet officially
supported, and is not recommended for production servers.
Upgrading From ejabberd 1.x:
- If you upgrade from a version older than 1.1.4, please check the
Release Notes of the intermediate versions for additional
information about database or configuration changes.
- The database schemas didn't change since ejabberd 1.1.4. Of course,
you are encouraged to make a database backup of your SQL database,
or your Mnesia spool directory before upgrading ejabberd.
- The ejabberdctl command line administration script is improved in
ejabberd 2.0.0, and now it can start and stop ejabberd. If you
already wrote your own start script for ejabberd 1.x, you can
continue using it, or try ejabberdctl. For your convenience, the
ejabberd Guide describes all the ejabberd and Erlang options used by
ejabberdctl.
- The example ejabberd.cfg file has been reorganized, but its format
and syntax rules are the same. So, you can continue using your
ejabberd.cfg file from 1.x if you want. The most important changes
are described now.
- The 'ssl' option is no longer available in the listening ports. For
legacy SSL encryption use the option 'tls'. For STARTTLS encryption
as defined in RFC 3920 XMPP-CORE use the option 'starttls'. Check
the ejabberd Guide for more information about configuring listening
ports.
- The options 'welcome_message' and 'registration_watchers' are now
options of the module mod_register. Check in the ejabberd Guide how
to configure that module.
- To enable PEP support in mod_pubsub, you need to enable it in the
mod_pubsub configuration, and also enable the new module
mod_caps. Check the section about mod_pubsub in the ejabberd Guide.
- Other new features and improvements also require changes in the
ejabberd.cfg, like mod_http_bind, mod_http_fileserver, mod_proxy65,
loglevel, pam_service, and watchdog_admins. Search for those words
in the ejabberd Guide and the example ejabberd.cfg.
Bug Reports
You can officially report bugs on Process-one support site:
https://support.process-one.net/
END
+30
View File
@@ -0,0 +1,30 @@
Release Notes
ejabberd 2.0.1
20 May 2008
ejabberd 2.0.1 is a bugfix release for ejabberd 2.0.x branch.
ejabberd 2.0.1 includes 10 improvements and 32 bugfixes.
A complete list of changes can be retrieved from:
http://redir.process-one.net/ejabberd-2.0.1
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/projects/ejabberd/
Recent changes include:
- Erlang R12 support.
- Better LDAP handling.
- PubSub bugfixes.
- Documentation improvements.
- inband registration limitation per IP.
- s2s improvements.
Bugs report
You can officially report bugs on Process-one support site:
http://support.process-one.net/
END
+34
View File
@@ -0,0 +1,34 @@
Release Notes
ejabberd 2.0.2
28 August 2008
ejabberd 2.0.2 is the second bug fix release for ejabberd 2.0.x branch.
ejabberd 2.0.2 includes many bugfixes and a few improvements.
A complete list of changes can be retrieved from:
http://redir.process-one.net/ejabberd-2.0.2
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
Recent changes include:
- Anti-abuse feature: client blacklist support by IP.
- Guide: new section Securing ejabberd; improved usability.
- LDAP filter optimisation: ability to filter user in ejabberd and not LDAP.
- MUC improvements: room options to restrict visitors; broadcast reasons.
- Privacy rules: fix MySQL storage.
- Pub/Sub and PEP: many improvements in implementation and protocol compliance.
- Proxy65: send valid SOCKS5 reply (removed support for Psi < 0.10).
- Web server embedded: better support for HTTPS.
- Binary installers: SMP on Windows; don't remove config when uninstalling.
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
END
+35
View File
@@ -0,0 +1,35 @@
Release Notes
ejabberd 2.0.3
14 January 2009
ejabberd 2.0.3 is the third bugfix release for ejabberd 2.0.x branch.
ejabberd 2.0.3 includes several bugfixes and a few improvements.
A complete list of changes can be retrieved from:
http://redir.process-one.net/ejabberd-2.0.3
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
Recent changes include:
- Do not ask certificate for client (c2s)
- Check digest-uri in SASL digest authentication
- Use send timeout to avoid locking on gen_tcp:send
- Fix ejabberd reconnection to database
- HTTP-Bind: handle wrong order of packets
- MUC: Improve traffic regulation management
- PubSub: Several bugfixes and improvements for best coverage of XEP-0060 v1.12
- Shared Roster Groups: push immediately membership changes
- Rotate also sasl.log on "reopen-log" command
- Binary Windows installer: better detect "Error running Post Install Script"
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
END
+44
View File
@@ -0,0 +1,44 @@
Release Notes
ejabberd 2.0.4
ejabberd 2.0.4 is the fourth bugfix release for ejabberd 2.0.x branch.
ejabberd 2.0.4 includes several bugfixes.
A detailed list of changes can be retrieved from:
http://redir.process-one.net/ejabberd-2.0.4
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
The changes are:
- Ensure ID attribute in roster push is unique
- Authentication: Fix Anonymous auth when enabled with broken ODBC
- Authentication: Unquote correctly backslash in DIGEST-MD5 SASL responses
- Authentication: Cancel presence subscriptions on account deletion
- LDAP: Close a connection on tcp_error
- LDAP: Implemented queue for pending queries
- LDAP: On failure of LDAP connection, waiting is done on pending queue
- MUC: Owner of a password protected room must also provide the password
- MUC: Prevent XSS in MUC logs by linkifying only a few known protocols
- Privacy rules: Items are now processed in the specified order
- Privacy rules: Fix to correctly block subscription requests
- Proxy65: If ip option is not defined, take an IP address of a local hostname
- PubSub: Add roster subscription handling; send PEP events to all resources
- PubSub: Allow node creation without configure item
- PubSub: Requesting items on a node which exists, but empty returns an error
- PEP: Fix sending notifications to other domains and s2s
- S2S: Fix problem with encrypted connection to Gtalk and recent Openfire
- S2S: Workaround to get DNS SRV lookup to work on Windows machine
- Shared Roster Groups: Fix to not resend authorization request
- WebAdmin: Fix encryption problem for ejabberd_http after timeout
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
END
+33
View File
@@ -0,0 +1,33 @@
Release Notes
ejabberd 2.0.5
ejabberd 2.0.5 is the fifth bugfix release in ejabberd 2.0.x branch.
ejabberd 2.0.5 includes three bugfixes.
More details of those fixes can be retrieved from:
http://redir.process-one.net/ejabberd-2.0.5
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
The changes are:
- Fix two problems introduced in ejabberd 2.0.4: subscription request
produced many authorization requests with some clients and
transports; and subscription requests were not stored for later
delivery when receiver was offline.
- Fix warning in expat_erl.c about implicit declaration of x_fix_buff
- HTTP-Bind (BOSH): Fix a missing stream:error in the returned
remote-stream-error stanza
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
END
+281
View File
@@ -0,0 +1,281 @@
Release Notes
ejabberd 2.1.0
ejabberd 2.1.0 is a major new version for ejabberd adding many
new features, performance and scalability improvements.
ejabberd 2.1.0 includes many new features, improvements and bug fixes.
A complete list of changes can be retrieved from:
http://redir.process-one.net/ejabberd-2.1.0
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
New features and improvements:
* Anti-abuse
- Captcha support (XEP-0158). The example script uses ImageMagick.
- New option: registration_timeout to limit registrations by time
- Use send timeout to avoid locking on gen_tcp:send
- mod_ip_blacklist: client blacklist support by IP
* API
- ejabberd_http provides Host, Port, Headers and Protocol in HTTP requests
- Export function to create MUC room
- New events: s2s_send_packet and s2s_receive_packet
- New event: webadmin_user_parse_query when POST in web admin user page
- Support distributed hooks over the cluster
* Authentification
- Extauth responses: log strange responses and add timeout
* Binary Installer
- Includes exmpp library to support import/export XML files
* Caps
- Remove useless caps tables entries
- mod_caps must handle correctly external contacts with several resources
- Complain if mod_caps disabled and mod_pubsub has PEP plugin enabled
* Clustering and Architecture
* Configuration
- Added option access_max_user_messages for mod_offline
- Added option backlog for ejabberd_listener to increase TCP backlog
- Added option define_macro and use_macro
- Added option include_config_file to include additional configuration files
- Added option max_fsm_queue
- Added option outgoing_s2s_options to define IP address families and timeout
- Added option registration_timeout to ejabberd.cfg.example
- Added option s2s_dns_options to define DNS timeout and retries
- Added option ERL_OPTIONS to ejabberdctl.cfg
- Added option FIREWALL_WINDOW to ejabberdctl.cfg
- Added option EJABBERD_PID_PATH to ejabberdctl.cfg
- Deleted option user_max_messages of mod_offline
- Check certfiles are readable on server start and listener start
- Config file management mix file reading and sanity check
- Include example PAM configuration file: ejabberd.pam
- New ejabberd listener: ejabberd_stun
- Support to bind the same port to multiple interfaces
- New syntax to specify the IP address and IPv6 in listeners
configuration. The old options {ip,{1,2,3,4}} and inet6 are
supported even if they aren't documented.
- New syntax to specify the network protocol: tcp or udp
- Report error at startup if a listener module isn't available
- Only listen in a port when actually ready to serve requests
- In default config, only local accounts can create rooms and PubSub nodes
* Core architecture
- More verbose error reporting for xml:element_to_string
- Deliver messages when first presence is Invisible
- Better log message when config file is not found
- Include original timestamp on delayed presences
* Crypto
- Do not ask certificate for client (c2s)
- SSL code remove from ejabberd in favor of TLS
- Support Zlib compression after STARTTLS encryption
- tls v1 client hello
* Documentation
- Document possible default MUC room options
- Document service_check_from in the Guide
- Document s2s_default_policy and s2s_host in the Guide
- new command and guide instructions to change node name in a Mnesia database
* ejabberd commands
- ejabberd commands: separate command definition and calling interface
- access_commands restricts who can execute what commands and arguments
- ejabberdctl script now displays help and categorization of commands
* HTTP Binding and HTTP Polling
- HTTP-Bind: module optimization and clean-up
- HTTP-Bind: allow configuration of max_inactivity timeout
- HTTP-Poll: turn session timeout into a config file parameter
* Jingle
- STUN server that facilitates the client-to-client negotiation process
* LDAP
- Faster reconnection to LDAP servers
- LDAP filter optimisation: Add ability to filter user in ejabberd and not LDAP
- LDAP differentiates failed auth and unavailable auth service
- Improve LDAP logging
- LDAPS support using TLS.
* Localization
- Use Gettext PO for translators, export to ejabberd MSG
- Support translation files for additional projects
- Most translations are updated to latest code
- New translation to Greek language
* Multi-User Chat (MUC)
- Allow admins to send messages to rooms
- Allow to store room description
- Captcha support in MUC: the admin of a room can configure it to
require participants to fill a captcha to join the room.
- Limit number of characters in Room ID, Name and Description
- Prevent unvoiced occupants from changing nick
- Support Result Set Management (XEP-0059) for listing rooms
- Support for decline of invitation to MUC room
- mod_muc_log options: plaintext format; filename with only room name
* Performance
- Run roster_get_jid_info only if privacy list has subscription or group item
- Significant PubSub performance improvements
* Publish-Subscribe
- Add nodetree filtering/authorization
- Add subscription option support for collection nodes
- Allow Multiple Subscriptions
- Check option of the nodetree instead of checking configuration
- Implement whitelist authorize and roster access model
- Implicit item deletion is not notified when deleting node
- Make PubSub x-data configuration form handles list value
- Make default node name convention XEP-compatible, document usage of hierarchy
- Node names are used verbatim, without separating by slash, unless a
node plugin uses its own separator
- Send authorization update event (XEP-0060, 8.6)
- Support of collection node subscription options
- Support ODBC storage. Experimental, needs more testing.
* Relational databases:
- Added MSSQL 2000 and 2005
- Privacy rules storage in MySQL
- Implement reliable ODBC transaction nesting
* Source Package
- Default installation directories changed. Please see the upgrade notes below.
- Allow more environment variable overrides in ejabberdctl
- ChangeLog is not edited manually anymore; it's generated automatically.
- Install the ejabberd Guide
- Install the ejabberd include files
- New option for the 'configure' script: --enable-user which installs
ejabberd granting permission to manage it to a regular system user;
no need to use root account to.
- Only try to install epam if pam was enabled in configure script
- Spool, config and log dirs: owner writes, group reads, others do nothing.
- Provides an example ejabberd.init file
* S2S
- Option to define s2s outgoing behaviour: IPv4, IPv6 and timeout
- DNS timeout and retries, configurable with s2s_dns_options.
* Shared rosters
- When a member is added/removed to group, send roster upgrade to group members
* Users management
- When account is deleted, cancel presence subscription for all roster items
* XEP Support
- Added XEP-0059 Result Set Management (for listing rooms)
- Added XEP-0082 Date Time
- Added XEP-0085 Chat State Notifications
- Added XEP-0157 Contact Addresses for XMPP Services
- Added XEP-0158 CAPTCHA Forms (in MUC rooms)
- Added STUN server, for XEP-0176: Jingle ICE-UDP Transport Method
- Added XEP-0199 XMPP Ping
- Added XEP-0202 Entity Time
- Added XEP-0203 Delayed Delivery
- Added XEP-0227 Portable Import/Export Format for XMPP-IM Servers
- Added XEP-0237 Roster Versioning
* Web Admin
- Display the connection method of user sessions
- Cross link of ejabberd users in the list of users and rosters
- Improved the browsing menu: don't disappear when browsing a host or node
- Include Last-Modified HTTP header in responses to allow caching
- Make some Input areas multiline: options of listening ports and modules
- Support PUT and DELETE methods in ejabberd_http
- WebAdmin serves Guide and links to related sections
* Web plugins
- mod_http_fileserver: new option directory_indices, and improve logging
Important Notes:
- ejabberd 2.1.0 requires Erlang R10B-9 or higher.
R12B-5 is the recommended version. Support for R13B is experimental.
Upgrading From ejabberd 1.x.x:
- Check the Release Notes of the intermediate versions for additional
information about database or configuration changes.
Upgrading From ejabberd 2.0.x:
- The database schemas have three changes since ejabberd 2.0.x.
Check the database creation SQL files and update your database.
1) New table roster_version to support roster versioning.
2) Six new tables for optional pubsub ODBC storage.
3) Some tables in the MySQL database have a new created_at column.
- As usual, it is recommended to backup the Mnesia spool directory and
your SQL database (if used) before upgrading ejabberd.
- Between ejabberd 2.0.0 and 2.0.5, mod_pubsub used "default" as the
default node plugin. But in 2.1.0 this is renamed to "hometree".
You have to edit your ejabberd config file and replace those names.
If you used ejabberd 2.0.5 or older, the database will be updated
automatically. But if you were using ejabberd from SVN, you must
manually run ejabberdctl with the command: rename_default_nodeplugin.
Running this command on already updated database does nothing.
- The listener options 'ip' and 'inet6' are not documented anymore
but they are supported and you can continue using them.
There is a new syntax to define IP address and IP version.
As usual, check the ejabberd Guide for more information.
- The log file sasl.log is now called erlang.log
- ejabberdctl commands now have _ characters instead of -.
For backwards compatibility, it is still supported -.
- mod_offline has a new option: access_max_user_messages.
The old option user_max_messages is no longer supported.
- If you upgrade from ejabberd trunk SVN, you must execute this:
$ ejabberdctl rename_default_nodeplugin
- Default installation directories changed a bit:
* The Mnesia spool files that were previously stored in
/var/lib/ejabberd/db/NODENAME/*
are now stored in
/var/lib/ejabberd/*
* The directories
/var/lib/ejabberd/ebin
/var/lib/ejabberd/priv
and their content is now installed as
/lib/ejabberd/ebin
/lib/ejabberd/priv
* There is a new directory with Erlang header files:
/lib/ejabberd/include
* There is a new directory for ejabberd documentation,
which includes the Admin Guide and the release notes::
/share/doc/ejabberd
- How to upgrade from previous version to ejabberd 2.1.0:
1. Stop the old instance of ejabberd.
2. Run 'make install' of new ejabberd 2.1.0 to create the new directories.
3. Copy the content of your old directory:
/var/lib/ejabberd/db/NODENAME/
to the new location:
/var/lib/ejabberd/
so you will have the files like this:
/var/lib/ejabberd/acl.DCD ...
4. You can backup the content of those directories and delete them:
/var/lib/ejabberd/ebin
/var/lib/ejabberd/priv
/var/lib/ejabberd/db
5. Now try to start your new ejabberd 2.1.0.
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+47
View File
@@ -0,0 +1,47 @@
Release Notes
ejabberd 2.1.1
ejabberd 2.1.1 is the first bugfix release in ejabberd 2.1.x branch.
ejabberd 2.1.1 includes several important bugfixes.
More details of those fixes can be retrieved from:
http://redir.process-one.net/ejabberd-2.1.1
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
The changes are:
* Core
- Call ejabberd_router:route/3 instead of sending a message
- Can't connect if starttls_required and zlib are set
- Routes vCard request to the occupant full JID, but should to bare JID
- S2S: fix allow_host/2 on subdomains. added hook s2s_allow_host
* MUC
- Support converting one-to-one chat to MUC
- Add support for serving a Unique Room Name
* Publish Subscribe
- Receive same last published PEP items at reconnect if several resources online
- Typo in mod_pubsub_odbc breaks Service Discovery and more
* Web
- Fix memory and port leak when TLS is enabled in HTTP
- WebAdmin doesn't report correct last activity with postgresql backend
- Option to define custom HTTP headers in mod_http_fileserver
- Show informative webpage when browsing the HTTP-Poll page
* Other
- Change captcha.sh to not depend on bash
- Generate main XML file also when exporting only a vhost
- Fix last newline in ejabberdctl result
- Guide: fix -setcookie, mod_pubsub_odbc host, content_types
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+51
View File
@@ -0,0 +1,51 @@
Release Notes
ejabberd 2.1.2
ejabberd 2.1.2 is the second bugfix release in ejabberd 2.1.x branch.
ejabberd 2.1.2 includes several bugfixes.
More details of those fixes can be retrieved from:
http://redir.process-one.net/ejabberd-2.1.2
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
The major changes are:
* Core
- Close sessions that were half connected
- Fix SASL PLAIN authentication message for RFC4616 compliance
- Fix support for old Erlang/OTP R10 and R11
- Return proper error (not 'conflict') when register is forbidden by ACL
- When ejabberd stops, send stream close to clients
* ejabberdctl
- Check for EGID in ejabberdctl command
- Command to stop ejabberd informing users, with grace period
- If there's a problem in config file, display config lines and stop node
* MUC
- Kick occupants with reason when room is stopped due to MUC shutdown
- Write in room log when a room is created, destroyed, started, stopped
* PubSub and PEP
- Don't call gen_server on internal event (improves performance and scalability)
- Fix duplicate SHIM header in Pubsub message
- Notification messages of Pubsub node config change contained a SHIM header
- SubID SHIM header missing in Pubsub message with multiple
subscriptions on the same node
- PEP: last published item not sent from unavailable users when the
subscription is implicit (XEP-0115)
- pep_mapping not working due to Node type mismatch
* WebAdmin
- If big offline message queue, show only subset on WebAdmin
- Support in user list page of WebAdmin when mod_offline is disabled
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+91
View File
@@ -0,0 +1,91 @@
Release Notes
ejabberd 2.1.3
ejabberd 2.1.3 is the third release in ejabberd 2.1.x branch.
ejabberd 2.1.3 includes many bugfixes, and some improvements.
More details of those fixes can be retrieved from:
http://redir.process-one.net/ejabberd-2.1.3
The new code can be downloaded from ejabberd download page:
http://www.process-one.net/en/ejabberd/
This is the full list of changes:
* Client connections
- Avoid 'invalid' value in iq record
- Avoid resending stream:error stanzas on terminate (EJAB-1180)
- Close also legacy sessions that were half connected (EJAB-1165)
- iq_query_info/1 now returns 'invalid' if XMLNS is invalid
- New ejabberd_c2s option support: max_fsm_queue
- Rewrite mnesia counter functions to use dirty_update_counter (EJAB-1177)
- Run user_receive_packet also when sending offline messages (EJAB-1193)
- Use p1_fsm behaviour in c2s FSM (EJAB-1173)
* Clustering
- Fix cluster race condition in route read
- New command to set master Mnesia node
- Use mnesia:async_dirty when cleaning table from failed node
* Documentation
- Add quotes in documentation of some erl arguments (EJAB-1191)
- Add option access_from (EJAB-1187)
- Add option max_fsm_queue (EJAB-1185)
- Fix documentation installation, no need for executable permission (EJAB-1170)
- Fix typo in EJABBERD_BIN_PATH (EJAB-891)
- Fix typos in example config comments (EJAB-1192)
* ejabberdctl
- Support concurrent connections with bound connection names
- Add support for Jot in ctl and TTY in debug
- Support help command names with old - characters
- Fix to really use the variable ERL_PROCESSES
* Erlang compatibility
- Don't call queue:filter/2 to keep compatibility with older Erlang versions
- Use alternative of file:read_line/1 to not require R13B02
* HTTP
- Add new debugging hook to the http receiving process
- Allow a request_handler to serve a file in root of HTTP
* HTTP-Bind (BOSH)
- Cross-domain HTTP-Bind support (EJAB-1168)
- Hibernate http-bind process after handling a request
- Reduce verbosity of HTTP Binding log messages
* LDAP
- Document ldap_dn_filter, fetch only needed attributes in search (EJAB-1204)
- Use "%u" pattern as default for ldap_uids (EJAB-1203)
* Localization
- Fix German translation (EJAB-1195)
- Fix Russian translation
* ODBC
- Fix MSSQL support, which was broken (EJAB-1201)
- Improved SQL reconnect behaviour
* Pubsub, PEP and Caps
- Add extended stanza addressing 'replyto' on PEP (EJAB-1198)
- Add pubsub#purge_offline (EJAB-1186)
- Fix pubsub#title option (EJAB-1190)
- Fix remove_user for node subscriptions (EJAB-1172)
- Optimizations in mod_caps
* Other
- mod_register: Add new acl access_from, default is to deny
- mod_sic: new module for the experimental XEP-0279 Server IP Check (EJAB-1205)
- PIEFXIS: Catch errors when exporting to PIEFXIS file (EJAB-1178)
- Proxy65: new option "hostname" (EJAB-838)
- Roster: Fix resending authorization problem
- Shared Roster Groups: get contacts nickname from vcard (EJAB-114)
- S2S: Improved s2s connections clean up (EJAB-1202)
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+80
View File
@@ -0,0 +1,80 @@
Release Notes
ejabberd 2.1.4
ejabberd 2.1.4 is the fourth release in ejabberd 2.1.x branch,
and includes many small bugfixes and improvements.
Read more details about the changes in:
http://redir.process-one.net/ejabberd-2.1.4
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
This is the full list of changes:
* Authentication
- Extauth: Optionally cache extauth users in mnesia (EJAB-641)
- LDAP: Allow inband password change (EJAB-199)
- LDAP: Extensible match support (EJAB-722)
- LDAP: New option ldap_tls_verify is added (EJAB-1229)
- PAM: New option pam_userinfotype to provide username or JID (EJAB-652)
* HTTP
- Add xml default content type
- Don't show HTTP request in logs, because reveals password (EJAB-1231)
- Move HTTP session timeout log from warning level to info
- New Access rule webadmin_view for read-only
* HTTP-Bind (BOSH)
- Change max inactivity from 30 to 120 seconds
- Export functions to facilitate prebinding methods
- Use dirty_delete when removing the session
- Remove an unneeded delay of 100 milliseconds
* Pubsub, PEP and Caps
- Enforce pubsub#presence_based_delivery (EJAB-1221)
- Enforce pubsub#show_values subscription option (EJAB-1096)
- Fix error code when unsubscribing from a non-existent node
- Fix to send node notifications (EJAB-1225)
- Full support for XEP-0115 v1.5 (EJAB-1223)(EJAB-1189)
- Make last_item_cache feature to be cluster aware
- Prevent orphaned pubsub node (EJAB-1233)
- Send created node notifications
* Other
- Bounce messages when closing c2s session
- Bugfixes when handling Service Discovery to contacts (EJAB-1207)
- Compilation of ejabberd_debug.erl is now optional
- Don't send error stanza as reply to error stanza (EJAB-930)
- Don't store blocked messages in offline queue
- Reduce verbosity of log when captcha_cmd is checked but not configured
- Use a standard method to get a random seed (EJAB-1229)
- Commands: new update_list and update to update modified modules (EJAB-1237)
- Localization: Updated most translations
- MUC: Refactor code to reduce calls to get_affiliation and get_role
- ODBC: Add created_at column also to PostgreSQL schema
- Vcard: Automatic vcard avatar addition in presence
Upgrading From previous ejabberd releases:
- If you use PostgreSQL, maybe you want to add the column created_at
to several tables. This is only a suggestion; ejabberd doesn't use
that column. Add it to your existing database executing those SQL
statements:
ALTER TABLE users ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT now();
ALTER TABLE rosterusers ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT now();
ALTER TABLE spool ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT now();
ALTER TABLE vcard ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT now();
ALTER TABLE privacy_list ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT now();
ALTER TABLE privacy_storage ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT now();
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+70
View File
@@ -0,0 +1,70 @@
Release Notes
ejabberd 2.1.5
ejabberd 2.1.5 is the fifth release in ejabberd 2.1.x branch,
and includes several minor bugfixes and a few improvements.
Read more details about the changes in:
http://redir.process-one.net/ejabberd-2.1.5
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
This is the full list of changes:
* Authentication
- Extauth: Support parallel script running (EJAB-1280)
- mod_register: Return Registered element when account exists
* ejabberdctl
- Fix print of command result that contains ~
- Fix problem when FIREWALL_WINDOW options for erl kernel were used
- Fix typo in update_list command (EJAB-1237)
- Some systems delete the lock dir; in such case don't use flock at all
- The command Update now returns meaningful message and exit-status (EJAB-1237)
* HTTP-Bind (BOSH)
- Don't say v1.2 in the Bind HTTP page
- New optional BOSH connection attribute process-delay (EJAB-1257)
* MUC
- Document the mod_muc option captcha_protected
- Now admins are able to see private rooms in disco (EJAB-1269)
- Show some more room options in the log file
* ODBC
- Correct handling of SQL boolean types (EJAB-1275)
- Discard too old queued requests (the caller has already got a timeout)
- Fixes wrong SQL escaping when --enable-full-xml is set
- Use ets insead of asking supervisor in ejabberd_odbc_sup:get_pids/1
* Pubsub, PEP and Caps
- Enforce disco features results (EJAB-1033, EJAB-1228, EJAB-1238)
- Support all the hash functions required by Caps XEP-0115
* Requirements
- Fixed support for Erlang R12; which doesn't support: true andalso ok
- Support OTP R14A by using public_key library instead of old ssl (EJAB-953)
- Requirement of OpenSSL increased from 0.9.6 to 0.9.8
- OpenSSL is now required, not optional
* Other
- Don't ask for client certificate when using tls (EJAB-1267)
- Fix typo in --enable-transient_supervisors
- Fix privacy check when serving local Last (EJAB-1271)
- Inform client that SSL session caching is disabled
- New configure option: --enable-nif
- Use driver allocator in C files for reflecting memory in erlang:memory(system)
- Debug: New p1_prof compiled with: make debugtools=true
- Debug: Added functions to collect stats about queues, memory, reductions etc
- HTTP: Log error if request has ambiguous Host header (EJAB-1261)
- Logs: When logging s2s out connection attempt or success, log if TLS is used
- Shared Rosters: When account is deleted, delete also member of stored rosters
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+67
View File
@@ -0,0 +1,67 @@
Release Notes
ejabberd 2.1.6
ejabberd 2.1.6 is the sixth release in ejabberd 2.1.x branch,
and includes a lot of bugfixes and improvements.
Read more details about the changes in:
http://redir.process-one.net/ejabberd-2.1.6
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
Some of the changes are:
* Account register
- mod_register: New ip_access option restricts which IPs can register (EJAB-915)
- mod_register: Default configuration allows registrations only from localhost
- mod_register: New password_strength for entropy check (EJAB-1326)
- mod_register: New captcha_protected option to require CAPTCHA (EJAB-1262)
- mod_register_web: New module, with CAPTCHA support (EJAB-471)
* BOSH
- Don't loop when there is nothing after a stream start (EJAB-1358)
- Fix http-bind supervisor to support multiple vhosts (EJAB-1321)
- Support to restart http-bind (EJAB-1318)
- Support for X-Forwarded-For HTTP header (EJAB-1356)
* Erlang/OTP compatibility
- R11: Fix detection of Erlang R11 and older (EJAB-1287)
- R12B5: Fix compatibility in ejabberd_http_bind.erl (EJAB-1343)
- R14A: Make xml.c correctly compile (EJAB-1288)
- R14A, R14B: Disapprove the use of R14A and R14B due to the rwlock bug
- R14B: Use pg2 from this version in systems with older ones (EJAB-1349)
* Listeners
- Bind listener ports early and start accepting connections later
- Fix a leak of ejabberd_receiver processes
- Speed up ejabberd_s2s:is_service/2, allow_host/2 (EJAB-1319)
- S2S: New option to require encryption (EJAB-495)
- S2S: New option to reject connection if untrusted certificate (EJAB-464)
- S2S: Include From attribute in the stream header of outgoing S2S connections
- S2S: Fix domain_certfile tlsopts modifications for S2S connections (EJAB-1086)
* Pubsub/PEP/Caps
- Fix pubsub cross domain eventing (EJAB-1340)
- Use one_queue IQ discipline by default
- Implement lifetime for broken hashes
- New CAPS processing
* ODBC
- Increase maximum restart strategy to handle some SQL timeouts
- Support PostgreSQL 9.0 (EJAB-1359)
- Use MEDIUMTEXT type for vcard avatars in MySQL schema (EJAB-1252)
* Miscellanea:
- mod_shared_roster_ldap: New Shared Roster Groups using LDAP information
- mod_privacy: Fix to allow block by group and subscription again
- Support timezone West of UTC (EJAB-1301)
- Support to change loglevel per module at runtime (EJAB-225)
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+104
View File
@@ -0,0 +1,104 @@
******************************************************************************
* These are the preliminary release notes of ejabberd 3.0.0.
*
* The download page for preliminary releases is:
* http://download.process-one.net/ejabberd/
*
* WARNING!!! PRELIMINARY DATABASE SCHEMA !!!
* The database schema may change before ejabberd 3.0.0 is released,
* and no migration code will be developed for this preliminary schema.
* The only supported migrations are
* from any ejabberd 0.9.0 ... 2.1.x to the final 3.0.0.
* Don't use this preliminary ejabberd release for a production server.
* You can test this release with a blank database or with a copy of your
* production database, but don't let your users connect to this copy
* because their changes may get lost when you upgrade to the final 3.0.0.
******************************************************************************
Release Notes
ejabberd 3.0.0
ejabberd 3.0.0 is the first release in the brand new 3.x.x branch,
and includes several minor bugfixes and a few improvements.
Read more details about the changes in:
http://redir.process-one.net/ejabberd-3.0.0
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
ejabberd 3.0.0 includes three major changes:
* exmpp is now extensively used in ejabberd for parsing stanzas, and many more.
* gen_storage (abbreviated GS) provides a database abstraction layer,
which supports storage in Mnesia and in ODBC databases.
Several ejabberd modules use GS, like mod_roster and ejabberd_auth_storage.
The schema of the tables stored by those modules have changed.
ejabberd automatically creates mnesia and ODBC tables,
and migrates them from a previous ejabberd version.
* Massive Hosting (abbreviated MH) is preliminary implemented in ejabberd,
but it is still incomplete, untested and undocumented.
This is a more detailed list of changes since ejabberd 2.1.x releases:
* Requirements
- Erlang/OTP R12B-5 or higher is required
- exmpp 0.9.6 or higher is required, not optional
- ESASL library is optional, for SASL GSSAPI authentication
- Libexpat not required by ejabberd, it uses exmpp now (EJAB-1111)
- GNU Iconv not required, because mod_irc isn't included anymore (EJAB-954)
- Only database migration from ejabberd 0.9.0 up to 2.1.x is supported
- ejabberd modules developed for previous releases need to be upgraded to exmpp
* Configuration
- New option clusterid
- New option that can't be used yet: static_modules
- ejabberd_auth_storage: new option auth_storage
- mod_muc_log: option spam_prevention is now link_nofollow (EJAB-1141)
- mod_roster: new access option (EJAB-72)
- S2S: allow definition of local address for outgoing connections (EJAB-418)
* Database
- New gen_storage that provides a database storage abstraction layer (EJAB-1102)
- mod_*_odbc are obsolete, use the normal ones with the option {backend, odbc}
- New ejabberd_auth_storage that supports internal and odbc databases
* XEP support
- Removed support for the deprecated XEP-0018 Invisible Presence (EJAB-810)
- mod_multicast: service for XEP-0033: Extended Stanza Addressing (EJAB-265)
- New ejabberd router for multicast packets (XEP-0033) (EJAB-329)
- ejabberd_c2s uses XEP-0033 if mod_multicast is enabled (EJAB-267)
- mod_muc uses XEP-0033 if mod_multicast is enabled (EJAB-266)
* Pubsub/PEP/Caps
- Allow distinguish between leafs and items (EJAB-1027)
- Enforce disco features results (EJAB-1033, EJAB-1228, EJAB-1238)
- Enforce pubsub#presence_based_delivery (EJAB-1221)
- Improve get_caps while still waiting for initial presence (EJAB-934)
- Make nodetree_tree implicitly create parent node if required (EJAB-944)
- Only use binary() instead of string() in Host and ServerHost (EJAB-1244)
- Rename NodeId (pubsub_node.id) bindings to Nidx (EJAB-1000)
- node_flat becomes default; it has the code instead of hometree (EJAB-1077)
- pubsub#notify_sub node option (EJAB-1230)
- pubsub#type node config and payload namespace (EJAB-1083)
* Miscellanea
- Bugfix handling Service Discovery to contacts (EJAB-1207)
- Bugfix: external contacts were offline after unavailable presence (EJAB-943)
- Don't offer SASL auth before doing TLS if TLS is required
- Experimental support for GSSAPI auth, requires esasl library (EJAB-831)
- Use binaries instead of lists where possible (EJAB-17)
- Windows ejabberdctl.cmd only handles up to 4 arguments (EJAB-1216)
- ejabberdctl: when starting, check it isn't already running
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

-75
View File
@@ -1,75 +0,0 @@
#!/bin/sh
#
# PROVIDE: ejabberd
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
HOME=/usr/pkg/jabber D=/usr/pkg/jabber/ejabberd export HOME
name="ejabberd"
rcvar=$name
if [ -r /etc/rc.conf ]
then
. /etc/rc.conf
else
eval ${rcvar}=YES
fi
# $flags from environment overrides ${rcvar}_flags
if [ -n "${flags}" ]
then
eval ${rcvar}_flags="${flags}"
fi
checkyesno()
{
eval _value=\$${1}
case $_value in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0 ;;
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1 ;;
*)
echo "\$${1} is not set properly."
return 1
;;
esac
}
cmd=${1:-start}
case ${cmd} in
force*)
cmd=${cmd#force}
eval ${rcvar}=YES
;;
esac
if checkyesno ${rcvar}
then
else
exit 0
fi
case ${cmd} in
start)
if [ -x $D/src ]; then
echo "Starting ${name}."
cd $D/src
ERL_MAX_PORTS=32000 export ERL_MAX_PORTS
ulimit -n $ERL_MAX_PORTS
su jabber -c "/usr/pkg/bin/erl -sname ejabberd -s ejabberd -heart -detached -sasl sasl_error_logger '{file, \"ejabberd-sasl.log\"}' &" \
1>/dev/null 2>&1
fi
;;
stop)
echo "rpc:call('ejabberd@`hostname -s`', init, stop, [])." | \
su jabber -c "/usr/pkg/bin/erl -sname ejabberdstop"
;;
restart)
echo "rpc:call('ejabberd@`hostname -s`', init, restart, [])." | \
su jabber -c "/usr/pkg/bin/erl -sname ejabberdrestart"
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
-81
View File
@@ -1,81 +0,0 @@
#!/bin/sh
echo '1. fetch, compile, and install erlang'
if [ ! pkg_info erlang 1>/dev/null 2>&1 ]; then
cd /usr/pkgsrc/lang/erlang
make fetch-list|sh
make
make install
fi
if pkg_info erlang | grep -q erlang-9.1nb1; then
else
echo "erlang-9.1nb1 not installed" 1>&2
exit 1
fi
echo '2. install crypt_drv.so'
if [ ! -d /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib ] ; then
mkdir -p /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib
fi
if [ ! -f /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib/crypto_drv.so ]; then
cp work/otp*/lib/crypto/priv/*/*/crypto_drv.so \
/usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib
fi
echo '3. compile and install elibcrypto.so'
if [ ! -f /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib/elibcrypto.so ]; then
cd /usr/pkgsrc/lang/erlang/work/otp_src_R9B-1/lib/crypto/c_src
ld -r -u CRYPTO_set_mem_functions -u MD5 -u MD5_Init -u MD5_Update \
-u MD5_Final -u SHA1 -u SHA1_Init -u SHA1_Update -u SHA1_Final \
-u des_set_key -u des_ncbc_encrypt -u des_ede3_cbc_encrypt \
-L/usr/lib -lcrypto -o ../priv/obj/i386--netbsdelf/elibcrypto.o
cc -shared \
-L/usr/pkgsrc/lang/erlang/work/otp_src_R9B-1/lib/erl_interface/obj/i386--netbsdelf \
-o ../priv/obj/i386--netbsdelf/elibcrypto.so \
../priv/obj/i386--netbsdelf/elibcrypto.o -L/usr/lib -lcrypto
cp ../priv/obj/i386--netbsdelf/elibcrypto.so \
/usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib
fi
echo '4. compile and install ssl_esock'
if [ ! -f /usr/pkg/lib/erlang/lib/ssl-2.3.5/priv/bin/ssl_esock ]; then
cd /usr/pkg/lib/erlang/lib/ssl-2.3.5/priv/obj/
make
fi
echo '5. initial ejabberd configuration'
cd /usr/pkg/jabber/ejabberd/src
./configure
echo '6. edit ejabberd Makefiles'
for M in Makefile mod_*/Makefile; do
if [ ! -f $M.orig ]; then
mv $M $M.orig
sed -e s%/usr/local%/usr/pkg%g < $M.orig > $M
fi
done
echo '7. compile ejabberd'
gmake
for A in mod_irc mod_muc mod_pubsub; do
(cd $A; gmake)
done
echo ''
echo 'now edit ejabberd.cfg'
echo ''
echo 'to start ejabberd: erl -sname ejabberd -s ejabberd'
-66
View File
@@ -1,66 +0,0 @@
% jabber.dbc.mtview.ca.us
override_acls.
{acl, admin, {user, "mrose", "jabber.dbc.mtview.ca.us"}}.
{access, announce, [{allow, admin},
{deny, all}]}.
{access, c2s, [{deny, blocked},
{allow, all}]}.
{access, c2s_shaper, [{none, admin},
{normal, all}]}.
{access, configure, [{allow, admin},
{deny, all}]}.
{access, disco_admin, [{allow, admin},
{deny, all}]}.
{access, muc_admin, [{allow, admin},
{deny, all}]}.
{access, register, [{deny, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{auth_method, internal}.
{host, "jabber.dbc.mtview.ca.us"}.
{outgoing_s2s_port, 5269}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{welcome_message, none}.
{listen, [{5222, ejabberd_c2s,
[{access, c2s},
{shaper, c2s_shaper}]},
{5223, ejabberd_c2s,
[{access, c2s},
{shaper, c2s_shaper},
{ssl, [{certfile, "/etc/openssl/certs/ejabberd.pem"}]}]},
{5269, ejabberd_s2s_in,
[{shaper, s2s_shaper}]}]}.
{modules, [
{mod_register, []},
{mod_roster, []},
{mod_privacy, []},
{mod_configure, []},
{mod_disco, []},
{mod_stats, []},
{mod_vcard, []},
{mod_offline, []},
{mod_echo, [{host, "echo.jabber.dbc.mtview.ca.us"}]},
{mod_private, []},
% {mod_irc, []},
{mod_muc, []},
{mod_pubsub, []},
{mod_time, []},
{mod_last, []},
{mod_version, []}
]}.
% Local Variables:
% mode: erlang
% End:
@@ -1,77 +0,0 @@
<!-- aim-transport.xml -->
<jabber>
<!--
You need to add elogger and rlogger entries when using ejabberd.
In this case the transport will do the logging.
-->
<log id='elogger'>
<host/>
<logtype/>
<format>%d: [%t] (%h): %s</format>
<file>/var/log/jabber/aim-transport-error.log</file>
</log>
<log id='rlogger'>
<host/>
<logtype>record</logtype>
<format>%d %h %s</format>
<file>/var/log/jabber/aim-transport-record.log</file>
</log>
<!--
ejabberd do not provide XDB services.
xdb_file.so is loaded in to handle all XDB requests.
-->
<xdb id="xdb">
<host/>
<load>
<xdb_file>/usr/local/lib/jabber/libjabberdxdbfile.so</xdb_file> <!-- This file is part of jabberd-1.4.x. -->
</load>
<xdb_file xmlns="jabber:config:xdb_file">
<spool><jabberd:cmdline flag='s'>/var/spool/jabber</jabberd:cmdline></spool>
</xdb_file>
</xdb>
<!--
Make sure that all host names here are resolveable via DNS if you
want the transport to be available to the public.
-->
<service id='aim.SERVER.COM'>
<!-- aim-transport configuration. -->
<aimtrans xmlns='jabber:config:aimtrans'>
<vCard>
<FN>AIM/ICQ Transport</FN>
<DESC>This is the AIM/ICQ Transport.</DESC>
<MAIL>EMAIL@ADDRESS.COM</MAIL>
<URL>http://aim-transport.jabberstudio.org/</URL>
</vCard>
<charset>cp1252</charset>
</aimtrans>
<!-- aim-transport module. -->
<load>
<aim_transport>/usr/local/lib/jabber/aim-transport.so</aim_transport>
</load>
</service>
<!--
The settings below have to match the settings you made
in your ejabberd.cfg configuration file.
-->
<service id="icq-linker">
<uplink/>
<connect>
<ip>127.0.0.1</ip>
<port>5233</port>
<secret>SECRET</secret>
</connect>
</service>
<pidfile>/var/run/jabber/aim-transport.pid</pidfile>
</jabber>
-136
View File
@@ -1,136 +0,0 @@
<!-- ile.xml -->
<config>
<jabber>
<server>127.0.0.1</server>
<port>5238</port>
<secret>SECRET</secret>
<service>ile.SERVER.COM</service>
<connectsleep>7</connectsleep> <!-- seconds to wait if we get disconnected -->
<language>en</language>
<vCard>
<FN>I Love Email</FN>
<DESC>With this service you can receive email notifications.
Security warning: Be careful when using this. Your password will travel in clear from your client to your jabber server if you don't use SSL and it will probably travel in clear from the jabber server to your email server. Use with care. This shouldn't be an issue in your Intranet, but it is if you use an ILE installed in a foreign jabber server.</DESC>
<MAIL>EMAIL@ADDRESS.COM</MAIL>
<URL>http://ile.jabberstudio.org/</URL>
</vCard>
</jabber>
<debug>
<file>/var/log/jabber/ile.log</file>
<level>1</level> <!-- man Net::Jabber::Debug -->
</debug>
<mail>
<checkinterval>10</checkinterval> <!-- in minutes -->
<timeout>20</timeout> <!-- timeout for IMAP/POP connection, in seconds -->
</mail>
<files>
<users>/var/spool/jabber/ile.SERVER.COM/users.db</users>
<passwords>/var/spool/jabber/ile.SERVER.COM/passwords.db</passwords>
<hosts>/var/spool/jabber/ile.SERVER.COM/hosts.db</hosts>
<types>/var/spool/jabber/ile.SERVER.COM/types.db</types>
<notifyxa>/var/spool/jabber/ile.SERVER.COM/notifyxa.db</notifyxa>
<notifydnd>/var/spool/jabber/ile.SERVER.COM/notifydnd.db</notifydnd>
<urls>/var/spool/jabber/ile.SERVER.COM/urls.db</urls>
</files>
<form>
<en>
<instructions>Please fill in the fields,according to your email account settings and notification preferences</instructions>
<title>ILE: Email notification service</title>
<email_options>Email account settings</email_options>
<user>Username</user>
<pass>Password</pass>
<host>Hostname</host>
<type>Type</type>
<newmail>You have received NUM email messages since last time I checked, which was CHECKINTERVAL minutes ago.</newmail>
<errorcheck>There was an error while trying to check mail for ACCOUNT.</errorcheck>
<notify_options>Notification Options</notify_options>
<notifyxa>Notify even when Xtended Away (XA)</notifyxa>
<notifydnd>Notify even when Do Not Disturb (DND)</notifydnd>
<webmail_url>Webmail URL</webmail_url>
<webmail_login>Login to ACCOUNT</webmail_login>
<iledesc>ILE: an email notifier component: http://ile.jabberstudio.org</iledesc>
</en>
<es>
<instructions>Por favor, rellene los campos del formulario.</instructions>
<title>ILE: Servicio de notificación de correo</title>
<email_options>Configuración de la cuenta de correo</email_options>
<user>Usuario</user>
<pass>Clave</pass>
<host>Host</host>
<type>Tipo</type>
<newmail>Ha recibido NUM email(s) desde la última comprobación que fue hace CHECKINTERVAL minutos</newmail>
<errorcheck>Ha habido un error en la comprobación del correo para la cuenta ACCOUNT.</errorcheck>
<notify_options>Opciones de notificación</notify_options>
<notifyxa>Notificar incluso si muy ausente (XA)</notifyxa>
<notifydnd>Notificar incluso si no molestar (DND)</notifydnd>
<webmail_url>Webmail URL</webmail_url>
<webmail_login>Leer correo de ACCOUNT</webmail_login>
<iledesc>ILE: un notificador de nuevo email - http://ile.jabberstudio.org</iledesc>
</es>
<ca>
<instructions>Ompli els camps del formulari.</instructions>
<title>ILE: Servei de notificació de nou email</title>
<email_options>Dades del compte de mail</email_options>
<user>Usuari</user>
<pass>Clau</pass>
<host>Host</host>
<type>Tipus</type>
<newmail>Ha rebut NUM email(s) des de la última comprobació que va ser fa CHECKINTERVAL minuts.</newmail>
<errorcheck>S'ha produit un error en la comprobació del correu per al compte ACCOUNT.</errorcheck>
<notify_options>Opcions de notificació</notify_options>
<notifyxa>Notificar si molt absent (XA)</notifyxa>
<notifydnd>Notificar si no molestar (DND)</notifydnd>
<webmail_url>Webmail URL</webmail_url>
<webmail_login>Llegir correu de ACCOUNT</webmail_login>
<iledesc>ILE: un notificador de nou email - http://ile.jabberstudio.org</iledesc>
</ca>
<ro>
<!-- Contributed by Adrian Rappa -->
<instructions>Va rog completati urmatoarele campuri</instructions>
<title>I Love Email: new email notification service</title>
<email_options>Email account settings</email_options>
<user>Nume utilizator</user>
<pass>Parola</pass>
<host>Nume gazda</host>
<type>Tip</type>
<newmail>Ati primit NUM mesaj(e) de la ultima verificare, care a fost acum CHECKINTERVAL minute.</newmail>
<errorcheck>A fost eroare in timp ce incercam sa verific posta pentru ACCOUNT.</errorcheck>
<notify_options>Notification Options</notify_options>
<notifyxa>Notify even when Xtended Away (XA)</notifyxa>
<notifydnd>Notify even when Do Not Disturb (DND)</notifydnd>
<webmail_url>Webmail URL</webmail_url>
<webmail_login>Login to ACCOUNT</webmail_login>
<iledesc>ILE: an email notifier component: http://ile.jabberstudio.org</iledesc>
</ro>
<nl>
<!-- Contributed by Sander Devrieze -->
<instructions>Vul volgende velden in.</instructions>
<title>ILE: Dienst voor e-mailnotificaties</title>
<email_options>Instellingen van e-mailaccount</email_options>
<user>Gebruikersnaam</user>
<pass>Wachtwoord</pass>
<host>Inkomende mailserver</host>
<type>Type verbinding</type>
<newmail>U hebt NUM berichten ontvangen sinds CHECKINTERVAL minuten geleden.</newmail>
<errorcheck>Fout tijdens controle op nieuwe e-mails bij ACCOUNT. ILE zal deze account niet meer opnieuw controleren tot u uw registratiegegevens wijzigt of opnieuw aanmeldt.</errorcheck>
<notify_options>Notificatie-instellingen</notify_options>
<notifyxa>Notificeer ook in de status Niet Beschikbaar (XA)</notifyxa>
<notifydnd>Notificeer ook in de status Niet Storen (DND)</notifydnd>
<webmail_url>URL van webmail</webmail_url>
<webmail_login>Aanmelden op ACCOUNT</webmail_login>
<iledesc>ILE: een dienst om e-mailnotificaties te ontvangen: http://ile.jabberstudio.org</iledesc>
</nl>
</form>
</config>
@@ -1,149 +0,0 @@
<jggtrans>
<service jid="gg.SERVER.COM"/>
<!-- This connects the jabber-gg-transport process to ejabberd. -->
<connect id="gglinker">
<ip>127.0.0.1</ip>
<port>5237</port>
<secret>SECRET</secret>
</connect>
<register>
<!-- This tag contains the message displayed to users at registration time.
You can use <p/> and/or <br/> to break lines. Multiple spaces and newlines
are converted to just one, so formatting of config file doesn't really matter. -->
<instructions>
Fill in your GG number (after "username")
and password to register on the transport.
<p/>To change your information in the GaduGadu directory you need to fill in the other fields.
<p/>To remove registration you need to leave the form blank.
</instructions>
</register>
<search>
<!-- This tag contains the message displayed to users at search time. -->
<instructions>
To search people:<br/>
First fill in surname or family name, nickname, city, birthyear or range of birthyears (eg. 1950-1960)
and gender (you may fill in more fields at once).<br/>
or<br/>
Fill in phone number<br/>
or<br/>
Fill in the GG number of the person you are searching.
</instructions>
</search>
<gateway>
<!-- This is message, that may be displayed to user when adding gg contact. -->
<desc>Please fill in the GaduGadu number of the person you want to add.</desc>
<!-- And this is the prompt for GG number. -->
<prompt>GG Nummer</prompt>
</gateway>
<vCard>
<FN>Gadu-Gadu Transport</FN>
<DESC>This is the Gadu-Gadu Transport.</DESC>
<EMAIL>EMAIL@ADDRESS.COM</EMAIL>
<URL>http://www.jabberstudio.org/projects/jabber-gg-transport/</URL>
</vCard>
<!-- Default user locale (language).
Empty means system locale setting,
no (or commented-out) <default_locale> tag means no translations. -->
<!-- <default_locale>pl_PL</default_locale> -->
<!-- Logger configuration.
You may configure one logger of type "syslog" and/or one of type "file".
You may also not configure logging at all. -->
<log type="syslog" facility="local0"/>
<log type="file">/var/log/jabber/jabber-gg-transport.log</log>
<!-- Uncomment this, if you want proxy to be used for Gadu-Gadu connection. -->
<!--
<proxy>
<ip>127.0.0.1</ip>
<port>8080</port>
</proxy>
-->
<!-- You can change these values according to your needs. -->
<conn_timeout>60</conn_timeout>
<ping_interval>10</ping_interval>
<!-- Gadu-Gadu server doesn't seem to answer pings anymore :-(
So let's give it 10 year :-) -->
<pong_timeout>315360000</pong_timeout>
<!-- This time after disconnection from Gadu-Gadu server the transport
will try to connect again. -->
<reconnect>300</reconnect>
<!-- How long to wait before restart, after jabber server connection is broken
negative value means, that jggtrans should terminate. -->
<restart_timeout>60</restart_timeout>
<!-- Delay between the unavailable presence is received from user and loggin out
from Gadu-Gadu - for nice <presence type="invisible"/> support. -->
<disconnect_delay>5</disconnect_delay>
<!-- list of Gadu-Gadu servers to use.
<hub/> means "use GG hub to find server"
<server/> tag should contain server address and may contain "port"
attribute with port number. When TLS is available (supported by libgadu)
it will be used unless "tls" attribute is set to "no". Please notice,
that not all servers will accept TLS connections.
Servers (including hub) are tried in order as they appear in <servers/>
element.
A reasonable default server list is hardcoded in jggtrans.
-->
<!--
<servers>
<hub/>
<server port="443">217.17.41.90</server>
<server tls="no">217.17.41.85</server>
<server tls="no">217.17.41.88</server>
</servers>
-->
<!-- Spool directory. This is the place, where user info will be stored. -->
<!-- Be careful about permissions - users' Gadu-Gadu passwords are stored there. -->
<spool>/var/spool/jabber/gg.SERVER.COM/</spool>
<!-- Where to store pid file. This tag is optional. -->
<pidfile>/var/run/jabber/jabber-gg-transport.pid</pidfile>
<!-- jid allowed to do some administrative task (eg. discovering online users).
May be used multiple times. -->
<admin>GG_TRANSPORT_ADMIN@SERVER.COM</admin>
<!-- ACL gives detailed access control to the transport. -->
<acl>
<!-- Example entries: -->
<allow who="admin@SERVER.COM" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
<!-- will allow statistics gathering to admin@SERVER.COM -->
<deny who="*" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
<!-- will deny statistics gathering for anybody else -->
<!-- <allow who="*@SERVER.COM"/> -->
<!-- will allow anything else to users from "SERVER.COM" -->
<!-- <deny what="iq/query?xmlns=jabber:x:register"/> -->
<!-- will deny registration for all other users -->
<!-- <allow what="presence"/> -->
<!-- allow presence from anybody -->
<!-- <allow what="iq"/> -->
<!-- allow iq from anybody -->
<!-- <allow what="message"/> -->
<!-- allow message from anybody -->
<!-- <deny/> -->
<!-- will deny anything else -->
</acl>
</jggtrans>
-128
View File
@@ -1,128 +0,0 @@
<!-- jit.xml -->
<jabber>
<!--
You need to add elogger and rlogger entries here when using ejabberd.
In this case the transport will do the logging.
-->
<log id='elogger'>
<host/>
<logtype/>
<file>/var/log/jabber/jit-error</file> <!-- WPJabber logs with date. -->
</log>
<log id='rlogger'>
<host/>
<logtype>record</logtype>
<file>/var/log/jabber/jit-record</file> <!-- WPJabber logs with date. -->
</log>
<!--
ejabberd do not provide XDB services.
xdb_file-jit.so (the renamed xdb_file.so from WPJabber) is
loaded in to handle all XDB requests.
Read also the documentation in xdb_file/README from the JIT package.
-->
<xdb id="xdb">
<host/>
<load>
<xdb_file>/usr/local/lib/jabber/xdb_file.so</xdb_file> <!-- The xdb_file.so from WPJabber/JIT. -->
</load>
<xdb_file xmlns="jabber:config:xdb_file">
<spool><jabberd:cmdline flag='s'>/var/spool/jabber</jabberd:cmdline></spool>
</xdb_file>
</xdb>
<!--
Make sure that all host names here are resolveable via DNS if you
want the transport to be available to the public.
-->
<service id="icq.SERVER.COM">
<!--
Replace SERVER.COM with the same as above to enable sms.
-->
<host>sms.icq.SERVER.COM</host>
<!-- JIT configuration. -->
<icqtrans xmlns="jabber:config:icqtrans">
<sms>
<host>sms.icq.SERVER.COM</host>
<!-- Status of virtual "sms-contacts". -->
<show>away</show>
<status/>
</sms>
<instructions>Fill in your UIN and password.</instructions>
<search>Search ICQ users.</search>
<vCard>
<FN>ICQ Transport (JIT)</FN>
<DESC>This is the Jabber ICQ Transport.</DESC>
<MAIL>EMAIL@ADDRESS.COM</MAIL>
<URL>http://jit.jabberstudio.org/</URL>
</vCard>
<!-- Hashtable for users. -->
<prime>3907</prime>
<!-- Send messages from ICQ as chat to Jabber clients. -->
<chat/>
<!-- Enable this for ICQ web presence. -->
<web/>
<!--
If you don't want jabber:x:data forms
in reg and search uncomment this tag
(Not recomended).
-->
<no_xdata/>
<!--
This tag is necessary when using ejabberd.
In this way JIT will have its own contact list.
-->
<own_roster/>
<!--
When present, this tag will tell JIT not to try to
get the user's roster (which will take a bit of time
to fail in scenarios described above).
-->
<no_jabber_roster/>
<!-- File with stats. -->
<user_count_file>/var/spool/jabber/jit-count</user_count_file>
<!--
Interval beetween checking sessions: ping, messages, acks.
-->
<session_check>5</session_check>
<!-- Reconnect retries. -->
<reconnects>5</reconnects>
<!--
Time in sec when session can be inactive, 0=disabled.
-->
<session_timeout>18000</session_timeout>
<charset>windows-1252</charset>
<server>
<host port="5190">login.icq.com</host>
</server>
</icqtrans>
<!-- JIT module. -->
<load>
<icqtrans>/usr/local/lib/jabber/jit.so</icqtrans>
</load>
</service>
<!--
The settings below have to match the settings you made
in your ejabberd.cfg configuration file.
-->
<service id="icq-linker">
<host>SERVER.COM</host>
<uplink/>
<connect>
<ip>127.0.0.1</ip>
<port>5234</port>
<secret>SECRET</secret>
</connect>
</service>
<pidfile>/var/run/jabber/jit.pid</pidfile>
</jabber>
@@ -1,118 +0,0 @@
<!-- msn-transport.xml -->
<jabber>
<!--
You need to add elogger and rlogger entries here when using ejabberd.
In this case the transport will do the logging.
-->
<log id='elogger'>
<host/>
<logtype/>
<format>%d: [%t] (%h): %s</format>
<file>/var/log/jabber/msn-transport-error.log</file>
</log>
<log id='rlogger'>
<host/>
<logtype>record</logtype>
<format>%d %h %s</format>
<file>/var/log/jabber/msn-transport-record.log</file>
</log>
<!--
ejabberd do not provide XDB services.
xdb_file.so is loaded in to handle all XDB requests.
-->
<xdb id="xdb">
<host/>
<load>
<xdb_file>/usr/local/lib/jabber/libjabberdxdbfile.so</xdb_file>
</load>
<xdb_file xmlns="jabber:config:xdb_file">
<spool><jabberd:cmdline flag='s'>/var/spool/jabber</jabberd:cmdline></spool>
</xdb_file>
</xdb>
<!--
Make sure that all host names here are resolveable via DNS if you
want the transport to be available to the public.
-->
<service id="msn.SERVER.COM">
<!-- msn-transport configuration. -->
<msntrans xmlns="jabber:config:msntrans">
<instructions>Fill in your MSN account and password (eg: user1@hotmail.com). A nickname is optional.</instructions>
<vCard>
<FN>MSN Transport</FN>
<DESC>This is the MSN Transport.</DESC>
<EMAIL>EMAIL@ADDRESS.COM</EMAIL>
<URL>http://msn-transport.jabberstudio.org/</URL>
</vCard>
<!--
Conference support allows you to create groupchat rooms on the
msn-transport and invite MSN users to join.
-->
<conference id="conference.msn.SERVER.COM">
<!--
This will make MSN transport invite you to a special groupchat
room when more then one user joins a normal one-on-one session.
Joining this room will make MSN transport "switch" the session
into groupchat mode. If you ignore it, MSN transport will
continue to send the messages as one-on-one chats.
-->
<invite>More than one user entered this chat session. Enter this room to switch to groupchat modus.</invite>
<notice>
<join> is available</join>
<leave> has leaved the room</leave>
</notice>
</conference>
<!-- Enable Hotmail inbox notification. -->
<headlines/>
<!--
Enable fancy friendly names
If the user enters a nickname upon registration, and the user has
a status message, their MSN friendly name will be "nickname - status message".
If the user does not enter a nickname on registration, but they do have
a status message, their friendly name will just be their status message.
If the user did enter a nickname on registration, but they have a blank status message,
then their friendly name will just be the registered nickname.
If the user did not enter a nickname on registration, and they have a blank status message,
their nickname will just be the username portion of their JID.
If the above chosen friendly name is too long, then it will be truncated and "..." placed
at the end. MSN only supports friendly names of 128 characters, so this is unavoidable.
If this is disabled, then the registered nick is always sent as the MSN friendly name,
or if that is blank, the username portion of their JID is sent instead.
-->
<fancy_friendly/>
</msntrans>
<!-- msn-transport module. -->
<load>
<msntrans>/usr/local/lib/jabber/msn-transport.so</msntrans>
</load>
</service>
<!--
The settings below have to match the settings you made
in your ejabberd.cfg configuration file.
-->
<service id="msn-linker">
<uplink/>
<connect>
<ip>127.0.0.1</ip>
<port>5235</port>
<secret>SECRET</secret>
</connect>
</service>
<pidfile>/var/run/jabber/msn-transport.pid</pidfile>
</jabber>
@@ -1,86 +0,0 @@
<!-- yahoo-transport-2.xml -->
<jabber>
<!--
You need to add the elogger entry here when using ejabberd.
In this case the transport will do the logging.
-->
<log id='elogger'>
<host/>
<logtype/>
<format>%d: [%t] (%h): %s</format>
<file>/var/log/jabber/yahoo-transport-2-error.log</file>
<stderr/>
</log>
<!--
ejabberd do not provide XDB services.
xdb_file.so is loaded in to handle all XDB requests.
-->
<xdb id="xdb">
<host/>
<load>
<xdb_file>/usr/local/lib/jabber/libjabberdxdbfile.so</xdb_file>
</load>
<xdb_file xmlns="jabber:config:xdb_file">
<spool><jabberd:cmdline flag='s'>/var/spool/jabber</jabberd:cmdline></spool>
</xdb_file>
</xdb>
<!--
Make sure that all host names here are resolveable via DNS if you
want the transport to be available to the public.
-->
<service id="yahoo.SERVER.COM">
<!-- yahoo-transport-2 configuration. -->
<config xmlns="jabber:config:yahoo">
<vCard>
<NAME>Yahoo! Transport</NAME>
<FN>vCard not implemented in current version</FN>
<DESC>This is the Yahoo! transport.</DESC>
<MAIL>EMAIL@ADDRESS.COM</MAIL>
<URL>http://yahoo-transport-2.jabberstudio.org/</URL>
</vCard>
<instructions>Fill in your YAHOO! Messenger username and password to register on this transport.</instructions>
<server>scs.msg.yahoo.com</server>
<port>5050</port>
<!--
The character map. This provides character set translation from UTF-8
to the indicated character map. See the man page for 'iconv' for available
character maps on your platform. CP1252 is the standard Windows character
set.
-->
<charmap>CP1252</charmap>
<!--
When this element exists, the transport will send new mail notifications as
well as a count of unread messages when the user initially logs in.
-->
<newmail/>
</config>
<!-- yahoo-transport-2 module. -->
<load>
<yahoo_transport>/usr/local/lib/jabber/yahoo-transport-2.so</yahoo_transport>
</load>
</service>
<!--
The settings below have to match the settings you made
in your ejabberd.cfg configuration file.
-->
<service id="yahoo-linker">
<uplink/>
<connect>
<ip>127.0.0.1</ip>
<port>5236</port>
<secret>SECRET</secret>
</connect>
</service>
<pidfile>/var/run/jabber/yahoo-transport-2.pid</pidfile>
</jabber>
@@ -1,45 +0,0 @@
#!/bin/sh
#########################################################
#
# aim-transport -- script to start aim-transport.
#
#########################################################
DAEMON=/usr/local/sbin/jabberd-aim-transport
CONF=/etc/jabber/aim-transport.xml
NAME=jabberd-aim-transport
HOME=/etc/jabber/
USER=ejabberd
#########################################################
if [ "`/usr/bin/whoami`" != "$USER" ]; then
echo "You need to be" $USER "user to run this script."
exit 1
fi
case "$1" in
debug)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME in debugging mode."
$DAEMON -D -H $HOME -c $CONF &
;;
start)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME."
$DAEMON -H $HOME -c $CONF &
;;
stop)
echo "Stopping $NAME."
killall $NAME &
;;
restart|reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {debug|start|stop|restart}"
exit 1
esac
@@ -1,43 +0,0 @@
#!/bin/sh
#########################################################
#
# ile -- script to start ILE.
#
#########################################################
DAEMON=/usr/local/sbin/ile.pl
NAME=ile.pl
CONF=/etc/jabber/ile.xml
USER=ejabberd
#########################################################
if [ "`/usr/bin/whoami`" != "$USER" ]; then
echo "You need to be" $USER "user to run this script."
exit 1
fi
case "$1" in
debug)
echo "Not implemented yet. Starting in normal mode"
$0 start
;;
start)
test -f $DAEMON || exit 0
echo "Starting $NAME."
$DAEMON $CONF &
;;
stop)
echo "Stopping $NAME."
killall $NAME &
;;
restart|reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {debug|start|stop|status|restart}"
exit 1
esac
@@ -1,47 +0,0 @@
#!/bin/sh
#########################################################
#
# jabber-gg-transport -- script to start jabber-gg-transport.
#
#########################################################
DAEMON=/usr/local/sbin/jggtrans
CONF=/etc/jabber/jabber-gg-transport.xml
NAME=jggtrans
HOME=/etc/jabber/
USER=ejabberd
#########################################################
if [ "`/usr/bin/whoami`" != "$USER" ]; then
echo "You need to be" $USER "user to run this script."
exit 1
fi
case "$1" in
debug)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME in debugging mode."
$DAEMON -D -H $HOME -c $CONF &
;;
start)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME."
$DAEMON $CONF &
;;
stop)
echo "Stopping $NAME."
killall $NAME &
rm /var/run/jabber/jabber-gg-transport.pid
;;
restart|reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {debug|start|stop|restart}"
exit 1
esac
@@ -1,45 +0,0 @@
#!/bin/sh
#########################################################
#
# jit -- script to start JIT.
#
#########################################################
DAEMON=/usr/local/sbin/wpjabber-jit
CONF=/etc/jabber/jit.xml
NAME=wpjabber-jit
HOME=/etc/jabber/
USER=ejabberd
#########################################################
if [ "`/usr/bin/whoami`" != "$USER" ]; then
echo "You need to be" $USER "user to run this script."
exit 1
fi
case "$1" in
debug)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME in debugging mode."
$DAEMON -D -H $HOME -c $CONF &
;;
start)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME."
$DAEMON -H $HOME -c $CONF &
;;
stop)
echo "Stopping $NAME."
killall $NAME &
;;
restart|reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {debug|start|stop|restart}"
exit 1
esac
@@ -1,50 +0,0 @@
#!/bin/sh
#########################################################
#
# msn-transport -- script to start MSN Transport.
#
#########################################################
DAEMON=/usr/local/sbin/jabberd-msn-transport
CONF=/etc/jabber/msn-transport.xml
NAME=jabberd-msn-transport
HOME=/etc/jabber/
USER=ejabberd
#########################################################
if [ "`/usr/bin/whoami`" != "$USER" ]; then
echo "You need to be" $USER "user to run this script."
exit 1
fi
case "$1" in
strace)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME in strace mode."
strace -o /opt/ejabberd/var/log/jabber/strace.log $DAEMON -H $HOME -c $CONF &
;;
debug)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME in debugging mode."
$DAEMON -D -H $HOME -c $CONF &
;;
start)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME."
$DAEMON -H $HOME -c $CONF &
;;
stop)
echo "Stopping $NAME."
killall $NAME &
;;
restart|reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {debug|start|stop|restart}"
exit 1
esac
@@ -1,45 +0,0 @@
#!/bin/sh
##############################################################
#
# yahoo-transport-2 -- script to start Yahoo-transport-2.
#
#############################################################
DAEMON=/usr/local/sbin/jabberd-yahoo-transport-2
CONF=/etc/jabber/yahoo-transport-2.xml
NAME=jabberd-yahoo-transport-2
HOME=/etc/jabber/
USER=ejabberd
#############################################################
if [ "`/usr/bin/whoami`" != "$USER" ]; then
echo "You need to be" $USER "user to run this script."
exit 1
fi
case "$1" in
debug)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME in debugging mode."
$DAEMON -D -H $HOME -c $CONF &
;;
start)
test -f $DAEMON -a -f $CONF || exit 0
echo "Starting $NAME."
$DAEMON -H $HOME -c $CONF &
;;
stop)
echo "Stopping $NAME."
killall $NAME &
;;
restart|reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {debug|start|stop|restart}"
exit 1
esac
-1
View File
@@ -1 +0,0 @@
*.beam
+336 -24
View File
@@ -1,40 +1,150 @@
# $Id$
CC = @CC@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
EXPAT_CFLAGS = @EXPAT_CFLAGS@
ERLANG_CFLAGS= @ERLANG_CFLAGS@
EXPAT_LIBS = @EXPAT_LIBS@
ERLANG_LIBS = @ERLANG_LIBS@
prefix = @prefix@
ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize +noobj
SUBDIRS = @mod_irc@ @mod_pubsub@ @mod_muc@ @eldap@ @web@ stringprep @tls@
ERLSHLIBS = expat_erl.so
INSTALLUSER=@INSTALLUSER@
# if no user was enabled, don't set privileges or ownership
ifeq ($(INSTALLUSER),)
O_USER=
G_USER=
CHOWN_COMMAND=echo
CHOWN_OUTPUT=/dev/null
INIT_USER=root
else
O_USER=-o $(INSTALLUSER)
G_USER=-g $(INSTALLUSER)
CHOWN_COMMAND=chown
CHOWN_OUTPUT=&1
INIT_USER=$(INSTALLUSER)
endif
EFLAGS += @ERLANG_SSLVER@ -pa .
# make debug=true to compile Erlang module with debug informations.
ifdef debug
EFLAGS+=+debug_info +export_all
endif
DEBUGTOOLS = p1_prof.erl etop_tr.erl
ifdef debugtools
SOURCES+=$(DEBUGTOOLS)
endif
ifeq (@hipe@, true)
EFLAGS+=+native
endif
ifeq (@roster_gateway_workaround@, true)
EFLAGS+=-DROSTER_GATEWAY_WORKAROUND
endif
ifeq (@full_xml@, true)
EFLAGS+=-DFULL_XML_SUPPORT
endif
ifeq (@transient_supervisors@, false)
EFLAGS+=-DNO_TRANSIENT_SUPERVISORS
endif
ifeq (@md2@, true)
EFLAGS+=-DHAVE_MD2
ERLANG_CFLAGS += -DHAVE_MD2
endif
INSTALL_EPAM=
ifeq (@pam@, pam)
INSTALL_EPAM=install -m 750 $(O_USER) epam $(PBINDIR)
endif
prefix = @prefix@
exec_prefix = @exec_prefix@
SUBDIRS = stun @mod_pubsub@ @mod_muc@ @mod_proxy65@ @eldap@ @pam@ @web@ @tls@ @odbc@ @ejabberd_zlib@
ERLSHLIBS =
ERLBEHAVS = cyrsasl.erl gen_mod.erl p1_fsm.erl
SOURCES_ALL = $(wildcard *.erl)
SOURCES_MISC = $(ERLBEHAVS) $(DEBUGTOOLS)
SOURCES += $(filter-out $(SOURCES_MISC),$(SOURCES_ALL))
ERLBEHAVBEAMS = $(ERLBEHAVS:.erl=.beam)
BEAMS = $(SOURCES:.erl=.beam)
DESTDIR =
EJABBERDDIR = $(DESTDIR)/var/lib/ejabberd
# /etc/ejabberd/
ETCDIR = $(DESTDIR)@sysconfdir@/ejabberd
# /sbin/
SBINDIR = $(DESTDIR)@sbindir@
# /lib/ejabberd/
EJABBERDDIR = $(DESTDIR)@libdir@/ejabberd
# /share/doc/ejabberd
PACKAGE_TARNAME = @PACKAGE_TARNAME@
datarootdir = @datarootdir@
DOCDIR = $(DESTDIR)@docdir@
# /usr/lib/ejabberd/ebin/
BEAMDIR = $(EJABBERDDIR)/ebin
# /usr/lib/ejabberd/include/
INCLUDEDIR = $(EJABBERDDIR)/include
# /usr/lib/ejabberd/priv/
PRIVDIR = $(EJABBERDDIR)/priv
# /usr/lib/ejabberd/priv/bin
PBINDIR = $(PRIVDIR)/bin
# /usr/lib/ejabberd/priv/lib
SODIR = $(PRIVDIR)/lib
# /usr/lib/ejabberd/priv/msgs
MSGSDIR = $(PRIVDIR)/msgs
LOGDIR = $(DESTDIR)/var/log/ejabberd
ETCDIR = $(DESTDIR)/etc/ejabberd
# /var/lib/ejabberd/
SPOOLDIR = $(DESTDIR)@localstatedir@/lib/ejabberd
# /var/lock/ejabberdctl
CTLLOCKDIR = $(DESTDIR)@localstatedir@/lock/ejabberdctl
# /var/lib/ejabberd/.erlang.cookie
COOKIEFILE = $(SPOOLDIR)/.erlang.cookie
# /var/log/ejabberd/
LOGDIR = $(DESTDIR)@localstatedir@/log/ejabberd
# Assume Linux-style dynamic library flags
DYNAMIC_LIB_CFLAGS = -fpic -shared
ifeq ($(shell uname),Darwin)
DYNAMIC_LIB_CFLAGS = -fPIC -bundle -flat_namespace -undefined suppress
endif
ifeq ($(shell uname),SunOs)
DYNAMIC_LIB_CFLAGS = -KPIC -G -z text
endif
all: $(ERLSHLIBS) compile-beam all-recursive
compile-beam:
@ERL@ -s make all report -noinput -s erlang halt
compile-beam: XmppAddr.hrl $(ERLBEHAVBEAMS) $(BEAMS)
$(BEAMS): $(ERLBEHAVBEAMS)
all-recursive: $(ERLBEHAVBEAMS)
%.beam: %.erl
@ERLC@ -W $(EFLAGS) $<
all-recursive install-recursive uninstall-recursive \
clean-recursive distclean-recursive \
clean-recursive distclean-recursive devdoc-recursive \
mostlyclean-recursive maintainer-clean-recursive:
@subdirs="$(SUBDIRS)"; for subdir in $$subdirs; do \
target=`echo $@|sed 's,-recursive,,'`; \
@@ -43,30 +153,142 @@ mostlyclean-recursive maintainer-clean-recursive:
done
%.hrl: %.asn1
@ERLC@ $(ASN_FLAGS) $<
@ERLC@ -W $(EFLAGS) $*.erl
$(ERLSHLIBS): %.so: %.c
gcc -Wall $(CFLAGS) $(LDFLAGS) $(LIBS) \
$(subst ../,,$(subst .so,.c,$@)) \
$(EXPAT_LIBS) $(EXPAT_CFLAGS) \
$(ERLANG_LIBS) $(ERLANG_CFLAGS) \
-o $@ -fpic -shared
$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) \
$(subst ../,,$(subst .so,.c,$@)) \
$(ERLANG_LIBS) \
$(ERLANG_CFLAGS) \
-o $@ \
$(DYNAMIC_LIB_CFLAGS)
translations:
../tools/extract_translations/prepare-translation.sh -updateall
install: all
#
# Configuration files
install -d -m 750 $(G_USER) $(ETCDIR)
[ -f $(ETCDIR)/ejabberd.cfg ] \
&& install -b -m 640 $(G_USER) ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg-new \
|| install -b -m 640 $(G_USER) ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg
sed -e "s*@rootdir@*@prefix@*" \
-e "s*@installuser@*@INSTALLUSER@*" \
-e "s*@LIBDIR@*@libdir@*" \
-e "s*@SYSCONFDIR@*@sysconfdir@*" \
-e "s*@LOCALSTATEDIR@*@localstatedir@*" \
-e "s*@DOCDIR@*@docdir@*" \
-e "s*@erl@*@ERL@*" ejabberdctl.template \
> ejabberdctl.example
[ -f $(ETCDIR)/ejabberdctl.cfg ] \
&& install -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new \
|| install -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg
install -b -m 644 $(G_USER) inetrc $(ETCDIR)/inetrc
#
# Administration script
[ -d $(SBINDIR) ] || install -d -m 755 $(SBINDIR)
install -m 550 $(G_USER) ejabberdctl.example $(SBINDIR)/ejabberdctl
#
# Init script
sed -e "s*@ctlscriptpath@*$(SBINDIR)*" \
-e "s*@installuser@*$(INIT_USER)*" ejabberd.init.template \
> ejabberd.init
#
# Binary Erlang files
install -d $(BEAMDIR)
install -m 644 *.app $(BEAMDIR)
install -m 644 *.beam $(BEAMDIR)
rm -f $(BEAMDIR)/configure.beam
install -m 644 *.app $(BEAMDIR)
#
# ejabberd header files
install -d $(INCLUDEDIR)
install -m 644 *.hrl $(INCLUDEDIR)
install -d $(INCLUDEDIR)/eldap/
install -m 644 eldap/*.hrl $(INCLUDEDIR)/eldap/
install -d $(INCLUDEDIR)/mod_muc/
install -m 644 mod_muc/*.hrl $(INCLUDEDIR)/mod_muc/
install -d $(INCLUDEDIR)/mod_proxy65/
install -m 644 mod_proxy65/*.hrl $(INCLUDEDIR)/mod_proxy65/
install -d $(INCLUDEDIR)/mod_pubsub/
install -m 644 mod_pubsub/*.hrl $(INCLUDEDIR)/mod_pubsub/
install -d $(INCLUDEDIR)/web/
install -m 644 web/*.hrl $(INCLUDEDIR)/web/
#
# Binary C programs
install -d $(PBINDIR)
install -m 750 $(O_USER) ../tools/captcha.sh $(PBINDIR)
$(INSTALL_EPAM)
#
# Binary system libraries
install -d $(SODIR)
install -m 644 *.so $(SODIR)
#
# Translated strings
install -d $(MSGSDIR)
install -m 644 msgs/*.msg $(MSGSDIR)
install -d $(ETCDIR)
install -b -m 644 ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg
install -d $(LOGDIR)
#
# Spool directory
install -d -m 750 $(O_USER) $(SPOOLDIR)
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(SPOOLDIR) >$(CHOWN_OUTPUT)
chmod -R 750 $(SPOOLDIR)
[ ! -f $(COOKIEFILE) ] || { $(CHOWN_COMMAND) @INSTALLUSER@ $(COOKIEFILE) >$(CHOWN_OUTPUT) ; chmod 400 $(COOKIEFILE) ; }
#
# ejabberdctl lock directory
install -d -m 750 $(O_USER) $(CTLLOCKDIR)
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(CTLLOCKDIR) >$(CHOWN_OUTPUT)
chmod -R 750 $(CTLLOCKDIR)
#
# Log directory
install -d -m 750 $(O_USER) $(LOGDIR)
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(LOGDIR) >$(CHOWN_OUTPUT)
chmod -R 750 $(LOGDIR)
#
# Documentation
install -d $(DOCDIR)
[ -f ../doc/guide.html ] \
&& install -m 644 ../doc/dev.html $(DOCDIR) \
&& install -m 644 ../doc/guide.html $(DOCDIR) \
&& install -m 644 ../doc/*.png $(DOCDIR) \
|| echo "No ../doc/guide.html was built"
install -m 644 ../doc/*.txt $(DOCDIR)
[ -f ../doc/guide.pdf ] \
&& install -m 644 ../doc/guide.pdf $(DOCDIR) \
|| echo "No ../doc/guide.pdf was built"
install -m 644 ../COPYING $(DOCDIR)
clean: clean-recursive clean-local
uninstall: uninstall-binary
uninstall-binary:
rm -f $(SBINDIR)/ejabberdctl
rm -fr $(DOCDIR)
rm -f $(BEAMDIR)/*.beam
rm -f $(BEAMDIR)/*.app
rm -fr $(BEAMDIR)
rm -f $(INCLUDEDIR)/*.hrl
rm -fr $(INCLUDEDIR)
rm -fr $(PBINDIR)
rm -f $(SODIR)/*.so
rm -fr $(SODIR)
rm -f $(MSGSDIR)/*.msgs
rm -fr $(MSGSDIR)
rm -fr $(PRIVDIR)
rm -fr $(EJABBERDDIR)
uninstall-all: uninstall-binary
rm -rf $(ETCDIR)
rm -rf $(EJABBERDDIR)
rm -rf $(SPOOLDIR)
rm -rf $(CTLLOCKDIR)
rm -rf $(LOGDIR)
clean: clean-recursive clean-local clean-devdoc
clean-local:
rm -f *.beam $(ERLSHLIBS)
rm -f *.beam $(ERLSHLIBS) epam ejabberdctl.example
rm -f XmppAddr.asn1db XmppAddr.erl XmppAddr.hrl
distclean: distclean-recursive clean-local
rm -f config.status
@@ -77,3 +299,93 @@ TAGS:
etags *.erl
Makefile: Makefile.in
dialyzer: $(BEAMS)
@dialyzer -c .
## Devdoc definitions
SRCDIR=.
DDTDIR=.
DEVDOCDIR=../doc/devdoc
DEVDOC_ERLS = $(wildcard ../doc/devdoc/*.erl)
DEVDOC_BEAMS = $(DEVDOC_ERLS:.erl=.beam)
APPNAME = ejabberd
VSN = $(shell sed '/vsn/!d;s/\(.*\)"\(.*\)"\(.*\)/\2/' ./ejabberd.app)
.PHONY = all
HTMLS = $(SOURCES:%.erl=../doc/devdoc/%.html)
ERLHTMLS = $(SOURCES:%.erl=../doc/devdoc/%.erl.html)
SVGS = $(SOURCES:%.erl=../doc/devdoc/%.svg)
EDOCINDEX = $(DEVDOCDIR)/index.html
## Devdoc rules
devdoc: compile-devdoc devdoc-root devdoc-recursive
$(devdoc-customize)
$(devdoc-move)
devdoc-root: $(EDOCINDEX) $(HTMLS) $(ERLHTMLS) $(SVGS)
define devdoc-customize
find $(DDTDIR) -type f -name '*.erl.html' -exec sed -i 's/<span class="attribute" >module<\/span>(\([A-Za-z0-9_]*\))/<span class="attribute" >module<\/span>(<a href="\1.html">\1<\/a>)/g;' {} \;
find $(DDTDIR) -type f -name '*.erl.html' -exec sed -i 's/arity="\([0-9]*\)" >\([A-Za-z0-9_]*\)</><a class="function" id="\2-\1" href="EDOCFILENAME#\2-\1">\2<\/a></g;' {} \;
find $(DDTDIR) -type f -name '*.erl.html' -exec sed -i 's/class="export" >\([A-Za-z0-9_]*\)\/\([0-9]*\)</class="export" ><a href="#\1-\2">\1\/\2<\/a></g;' {} \;
for fn in *.erl.html; do \
sed -i 's/EDOCFILENAME/'$${fn%.erl.html}.html'/g;' $${fn} ; \
sed = $${fn} | sed 'N;s/\n/ /;s/^\([0-9_]*\)/<a href="#\1" name="\1" class="l">\1<\/a>/' >$${fn}.tmp ; \
mv $${fn}.tmp $${fn} ; \
sed -i 's/<a href="#1" name="1" class="l">1<\/a> <html><link rel="stylesheet" type="text\/css"href="escobar.css"><\/link><body><pre><span class="comment" >/<html><link rel="stylesheet" type="text\/css" href="escobar.css"><\/link><body><pre><span class="comment" ><a href="#1" name="1" class="l">1<\/a> /g;' $${fn} ; \
done
-mv *.erl.html $(DEVDOCDIR)
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/<a href="overview-summary.html" target="overviewFrame">/<a href="index.html" target="_parent">/g;' {} \;
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/align=\"right\" border=\"0\" alt=\"erlang logo\"/alt=\"erlang logo\"><\/a><a href=\"http:\/\/www.ejabberd.im\/\"><img src=\"ejabberd-im.png\" alt=\"ejabberd Community\"><\/a><a href=\"http:\/\/www.process-one.net\/en\/ejabberd\/\"><img src=\"ejabberd-p1.png\" alt=\"ejabberd home\"><\/a><a href=\"http:\/\/www.process-one.net\/\"><img src=\"process-one.png\" alt=\"ProcessOne\"/g;' {} \;
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/^<h1>Module \([A-Za-z0-9_]*\)<\/h1>/<h1>Module \1 [<a href="\1.erl.html">erl<\/a> <a href="\1.svg">svg<\/a>]<\/h1>/g;' {} \;
find $(DDTDIR) -type f -name '*.html' -exec sed -i 's/class="function"><a name="\([A-Za-z0-9_]*\)-\([0-9_]*\)">/class="function"><a name="\1-\2" href="ESCOFILENAME#\1-\2">/g;' {} \;
-for fn in *.html; do sed -i 's/ESCOFILENAME/'$${fn%.html}.erl.html'/g;' $${fn} ; done
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="EXP\([A-Za-z0-9_]*\).html#\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="\1.html#\2-\3"/g;' {} \;
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="PRI\([A-Za-z0-9_]*\).html#\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="\1.html#\2-\3"/g;' {} \;
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="APP\([A-Za-z0-9_]*\):\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="\1.html#\2-\3"/g;' {} \;
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="EXM\([A-Za-z0-9_]*\):\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="http:\/\/www.process-one.net\/docs\/exmpp\/devdoc\/trunk\/\1.html#\2-\3"/g;' {} \;
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="OTP\([A-Za-z0-9_]*\):\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="http:\/\/www.erlang.org\/doc\/man\/\1.html#\2-\3"/g;' {} \;
find $(DDTDIR) -type f -name '*.svg' -exec sed -i 's/xlink:href="OTP\([A-Za-z0-9_]*\)\/\([0-9_]*\)"/xlink:href="http:\/\/www.erlang.org\/doc\/man\/erlang.html#\1-\2"/g;' {} \;
endef
define devdoc-move
-rm *.dot
-mv *.html $(DEVDOCDIR)
-mv *.svg $(DEVDOCDIR)
endef
compile-devdoc: $(DEVDOC_BEAMS)
[ ! -f funrelg.beam ] || mv funrelg.beam $(DEVDOCDIR)
[ ! -f escobar_hilite.beam ] || mv escobar_hilite.beam $(DEVDOCDIR)
[ ! -f escobar_run.beam ] || mv escobar_run.beam $(DEVDOCDIR)
$(EDOCINDEX):
@ERL@ -noshell -run edoc_run application "'$(APPNAME)'" '"$(SRCDIR)"' \
'[{dir,"$(DDTDIR)"},{packages,false},{todo,true},{private,true},{def,{vsn,"$(VSN)"}},{stylesheet,"process-one.css"},{overview,"overview.edoc"}]' -s init stop
sed -i 's/<title>The ejabberd application<\/title>/<title>ejabberd devdoc<\/title><link rel="shortcut icon" href="favicon.ico" type="image\/x-icon"\/>/g;' $(DDTDIR)/index.html
mv edoc-info $(DEVDOCDIR)
mv *.png $(DEVDOCDIR)
cp *.html $(DEVDOCDIR)
@ERL@ -noshell -pa $(DEVDOCDIR) -run escobar_run dir $(SRCDIR) $(SRCDIR) -s init stop
@ERL@ -noshell -pa $(DEVDOCDIR) -run funrelg dir $(SRCDIR) $(SRCDIR) -s init stop
$(devdoc-customize)
$(devdoc-move)
$(DEVDOCDIR)/%.erl.html: %.erl
@ERL@ -noshell -pa $(DEVDOCDIR) -run escobar_run file $< $(SRCDIR) -s init stop
$(DEVDOCDIR)/%.html: %.erl
@ERL@ -noshell -run edoc_run file $< \
'[{dir,"$(DDTDIR)"},{packages,false},{todo,true},{private,true},{def,{vsn,"$(VSN)"}},{stylesheet,"process-one.css"},{overview,"overview.edoc"}]' -s init stop
$(DEVDOCDIR)/%.svg: %.erl
@ERL@ -noshell -pa $(DEVDOCDIR) -run funrelg file $< $(SRCDIR) -s init stop
clean-devdoc:
rm -f $(DEVDOCDIR)/edoc-info
rm -f $(DEVDOCDIR)/erlang.png
rm -f $(DEVDOCDIR)/*.beam
rm -f $(DEVDOCDIR)/*.dot
rm -f $(DEVDOCDIR)/*.html
rm -f $(DEVDOCDIR)/*.svg
+46 -21
View File
@@ -8,8 +8,8 @@ EREL=$(REL)\ejabberd-$(EJABBERD_VERSION)
EBIN_DIR=$(EREL)\ebin
SRC_DIR=$(EREL)\src
PRIV_DIR=$(EREL)\priv
SO_DIR=$(PRIV_DIR)\lib
MSGS_DIR=$(PRIV_DIR)\msgs
SO_DIR=$(EREL)
MSGS_DIR=$(EREL)\msgs
WIN32_DIR=$(EREL)\win32
DOC_DIR=$(EREL)\doc
@@ -35,13 +35,12 @@ release : build release_clean
copy *.beam $(EBIN_DIR)
@erase $(EBIN_DIR)\configure.beam
copy *.app $(EBIN_DIR)
mkdir $(PRIV_DIR)
mkdir $(SO_DIR)
copy *.dll $(SO_DIR)
mkdir $(MSGS_DIR)
copy msgs\*.msg $(MSGS_DIR)
mkdir $(WIN32_DIR)
copy win32\ejabberd.cfg $(EREL)
copy win32\inetrc $(EREL)
copy $(SYSTEMROOT)\system32\libeay32.dll $(EREL)
copy $(SYSTEMROOT)\system32\ssleay32.dll $(EREL)
copy win32\ejabberd.ico $(WIN32_DIR)
@@ -53,75 +52,102 @@ release : build release_clean
mkdir $(SRC_DIR)\eldap
copy eldap\eldap.* $(SRC_DIR)\eldap
copy eldap\ELDAPv3.asn $(SRC_DIR)\eldap
mkdir $(SRC_DIR)\mod_irc
copy mod_irc\*.erl $(SRC_DIR)\mod_irc
copy mod_irc\*.c $(SRC_DIR)\mod_irc
mkdir $(SRC_DIR)\mod_muc
copy mod_muc\*.erl $(SRC_DIR)\mod_muc
mkdir $(SRC_DIR)\mod_pubsub
copy mod_pubsub\*.erl $(SRC_DIR)\mod_pubsub
mkdir $(SRC_DIR)\mod_proxy65
copy mod_proxy65\*.erl $(SRC_DIR)\mod_proxy65
copy mod_proxy65\*.hrl $(SRC_DIR)\mod_proxy65
mkdir $(SRC_DIR)\stringprep
copy stringprep\*.erl $(SRC_DIR)\stringprep
copy stringprep\*.c $(SRC_DIR)\stringprep
copy stringprep\*.tcl $(SRC_DIR)\stringprep
mkdir $(SRC_DIR)\stun
copy stun\*.erl $(SRC_DIR)\stun
copy stun\*.hrl $(SRC_DIR)\stun
mkdir $(SRC_DIR)\tls
copy tls\*.erl $(SRC_DIR)\tls
copy tls\*.c $(SRC_DIR)\tls
mkdir $(SRC_DIR)\ejabberd_zlib
copy ejabberd_zlib\*.erl $(SRC_DIR)\ejabberd_zlib
copy ejabberd_zlib\*.c $(SRC_DIR)\ejabberd_zlib
mkdir $(SRC_DIR)\web
copy web\*.erl $(SRC_DIR)\web
mkdir $(SRC_DIR)\odbc
copy odbc\*.erl $(SRC_DIR)\odbc
copy odbc\*.sql $(EREL)
mkdir $(DOC_DIR)
copy ..\doc\*.txt $(DOC_DIR)
copy ..\doc\*.html $(DOC_DIR)
copy ..\doc\*.png $(DOC_DIR)
SOURCE = expat_erl.c
OBJECT = expat_erl.o
DLL = expat_erl.dll
SOURCE =
OBJECT =
DLL =
build : $(DLL) compile-beam all-recursive
all-recursive :
cd eldap
nmake -nologo -f Makefile.win32
cd ..\mod_irc
nmake -nologo -f Makefile.win32
cd ..\mod_muc
nmake -nologo -f Makefile.win32
cd ..\mod_pubsub
nmake -nologo -f Makefile.win32
cd ..\mod_proxy65
nmake -nologo -f Makefile.win32
cd ..\stringprep
nmake -nologo -f Makefile.win32
cd ..\stun
nmake -nologo -f Makefile.win32
cd ..\tls
nmake -nologo -f Makefile.win32
cd ..\ejabberd_zlib
nmake -nologo -f Makefile.win32
cd ..\web
nmake -nologo -f Makefile.win32
cd ..\odbc
nmake -nologo -f Makefile.win32
cd ..
compile-beam :
compile-beam : XmppAddr.hrl
erl -s make all report -noinput -s erlang halt
XmppAddr.hrl : XmppAddr.asn1
erlc -bber_bin +der +compact_bit_string +optimize +noobj XmppAddr.asn1
CLEAN : clean-recursive clean-local
clean-local :
-@erase $(OBJECT)
-@erase $(DLL)
-@erase expat_erl.exp
-@erase expat_erl.lib
-@erase *.beam
-@erase XmppAddr.asn1db
-@erase XmppAddr.erl
-@erase XmppAddr.hrl
clean-recursive :
cd eldap
nmake -nologo -f Makefile.win32 clean
cd ..\mod_irc
nmake -nologo -f Makefile.win32 clean
cd ..\mod_muc
nmake -nologo -f Makefile.win32 clean
cd ..\mod_pubsub
nmake -nologo -f Makefile.win32 clean
cd ..\mod_proxy65
nmake -nologo -f Makefile.win32 clean
cd ..\stringprep
nmake -nologo -f Makefile.win32 clean
cd ..\stun
nmake -nologo -f Makefile.win32 clean
cd ..\tls
nmake -nologo -f Makefile.win32 clean
cd ..\ejabberd_zlib
nmake -nologo -f Makefile.win32 clean
cd ..\web
nmake -nologo -f Makefile.win32 clean
cd ..\odbc
nmake -nologo -f Makefile.win32 clean
cd ..
distclean : release_clean clean
@@ -129,14 +155,13 @@ distclean : release_clean clean
-@erase Makefile.inc
CC=cl.exe
CC_FLAGS=-nologo -D__WIN32__ -DWIN32 -DWINDOWS -D_WIN32 -DNT $(EXPAT_FLAG) -MD -Ox -I"$(ERLANG_DIR)\usr\include" -I"$(EI_DIR)\include" -I"$(EXPAT_DIR)\source\lib"
CC_FLAGS=-nologo -D__WIN32__ -DWIN32 -DWINDOWS -D_WIN32 -DNT -MD -Ox -I"$(ERLANG_DIR)\usr\include" -I"$(EI_DIR)\include"
LD=link.exe
LD_FLAGS=-release -nologo -incremental:no -dll "$(EI_DIR)\lib\ei_md.lib" "$(EI_DIR)\lib\erl_interface_md.lib" "$(EXPAT_LIB)" MSVCRT.LIB kernel32.lib advapi32.lib gdi32.lib user32.lib comctl32.lib comdlg32.lib shell32.lib
LD_FLAGS=-release -nologo -incremental:no -dll "$(EI_DIR)\lib\ei_md.lib" "$(EI_DIR)\lib\erl_interface_md.lib" MSVCRT.LIB kernel32.lib advapi32.lib gdi32.lib user32.lib comctl32.lib comdlg32.lib shell32.lib
$(DLL) : $(OBJECT)
$(LD) $(LD_FLAGS) -out:$(DLL) $(OBJECT)
$(OBJECT) : $(SOURCE)
$(CC) $(CC_FLAGS) -c -Fo$(OBJECT) $(SOURCE)
$(CC) $(CC_FLAGS) -c -Fo$(OBJECT) $(SOURCE)
+14
View File
@@ -0,0 +1,14 @@
XmppAddr { iso(1) identified-organization(3)
dod(6) internet(1) security(5) mechanisms(5) pkix(7)
id-on(8) id-on-xmppAddr(5) }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
id-on-xmppAddr OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
dod(6) internet(1) security(5) mechanisms(5) pkix(7)
id-on(8) 5 }
XmppAddr ::= UTF8String
END
+235
View File
@@ -0,0 +1,235 @@
AC_DEFUN([AM_WITH_ZLIB],
[ AC_ARG_WITH(zlib,
[AC_HELP_STRING([--with-zlib=PREFIX], [prefix where zlib is installed])])
if test x"$ejabberd_zlib" != x; then
ZLIB_CFLAGS=
ZLIB_LIBS=
if test x"$with_zlib" != x; then
ZLIB_CFLAGS="-I$with_zlib/include"
ZLIB_LIBS="-L$with_zlib/lib"
fi
AC_CHECK_LIB(z, gzgets,
[ ZLIB_LIBS="$ZLIB_LIBS -lz"
zlib_found=yes ],
[ zlib_found=no ],
"$ZLIB_LIBS")
if test $zlib_found = no; then
AC_MSG_ERROR([Could not find development files of zlib library. Install them or disable `ejabberd_zlib' with: --disable-ejabberd_zlib])
fi
zlib_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $ZLIB_CFLAGS"
zlib_save_CPPFLAGS="$CFLAGS"
CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS"
AC_CHECK_HEADERS(zlib.h, , zlib_found=no)
if test $zlib_found = no; then
AC_MSG_ERROR([Could not find zlib.h. Install it or disable `ejabberd_zlib' with: --disable-ejabberd_zlib])
fi
CFLAGS="$zlib_save_CFLAGS"
CPPFLAGS="$zlib_save_CPPFLAGS"
AC_SUBST(ZLIB_CFLAGS)
AC_SUBST(ZLIB_LIBS)
fi
])
AC_DEFUN([AM_WITH_PAM],
[ AC_ARG_WITH(pam,
[AC_HELP_STRING([--with-pam=PREFIX], [prefix where PAM is installed])])
if test x"$pam" != x; then
PAM_CFLAGS=
PAM_LIBS=
if test x"$with_pam" != x; then
PAM_CFLAGS="-I$with_pam/include"
PAM_LIBS="-L$with_pam/lib"
fi
AC_CHECK_LIB(pam, pam_start,
[ PAM_LIBS="$PAM_LIBS -lpam"
pam_found=yes ],
[ pam_found=no ],
"$PAM_LIBS")
if test $pam_found = no; then
AC_MSG_ERROR([Could not find development files of PAM library. Install them or disable `pam' with: --disable-pam])
fi
pam_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PAM_CFLAGS"
pam_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $PAM_CFLAGS"
AC_CHECK_HEADERS(security/pam_appl.h, , pam_found=no)
if test $pam_found = no; then
AC_MSG_ERROR([Could not find security/pam_appl.h. Install it or disable `pam' with: --disable-pam])
fi
CFLAGS="$pam_save_CFLAGS"
CPPFLAGS="$pam_save_CPPFLAGS"
AC_SUBST(PAM_CFLAGS)
AC_SUBST(PAM_LIBS)
fi
])
AC_DEFUN([AM_WITH_ERLANG],
[ AC_ARG_WITH(erlang,
[AC_HELP_STRING([--with-erlang=PREFIX], [path to erlc and erl])])
AC_PATH_TOOL(ERLC, erlc, , $with_erlang:$with_erlang/bin:$PATH)
AC_PATH_TOOL(ERL, erl, , $with_erlang:$with_erlang/bin:$PATH)
if test "z$ERLC" = "z" || test "z$ERL" = "z"; then
AC_MSG_ERROR([erlang not found])
fi
cat >>conftest.erl <<_EOF
-module(conftest).
-author('alexey@sevcom.net').
-export([[start/0]]).
start() ->
EIDirS = code:lib_dir("erl_interface") ++ "\n",
EILibS = libpath("erl_interface") ++ "\n",
EXMPPDir = code:lib_dir("exmpp"),
case EXMPPDir of
{error, bad_name} -> exit("exmpp not found");
_ -> ok
end,
EXMPPDirS = EXMPPDir ++ "\n",
RootDirS = code:root_dir() ++ "\n",
file:write_file("conftest.out", list_to_binary(EIDirS ++ EILibS ++ ssldef() ++ EXMPPDirS ++ RootDirS)),
halt().
ssldef() ->
OTP = (catch erlang:system_info(otp_release)),
if
OTP >= "R14" -> "-DSSL40\n";
OTP >= "R12" -> "-DSSL39\n";
true -> "\n"
end.
%% return physical architecture based on OS/Processor
archname() ->
ArchStr = erlang:system_info(system_architecture),
case os:type() of
{win32, _} -> "windows";
{unix,UnixName} ->
Specs = string:tokens(ArchStr,"-"),
Cpu = case lists:nth(2,Specs) of
"pc" -> "x86";
_ -> hd(Specs)
end,
atom_to_list(UnixName) ++ "-" ++ Cpu;
_ -> "generic"
end.
%% Return arch-based library path or a default value if this directory
%% does not exist
libpath(App) ->
PrivDir = code:priv_dir(App),
ArchDir = archname(),
LibArchDir = filename:join([[PrivDir,"lib",ArchDir]]),
case file:list_dir(LibArchDir) of
%% Arch lib dir exists: We use it
{ok, _List} -> LibArchDir;
%% Arch lib dir does not exist: Return the default value
%% ({error, enoent}):
_Error -> code:lib_dir("erl_interface") ++ "/lib"
end.
_EOF
if ! $ERLC conftest.erl; then
AC_MSG_ERROR([could not compile sample program])
fi
if ! $ERL -s conftest -noshell; then
AC_MSG_ERROR([could not run sample program])
fi
if ! test -f conftest.out; then
AC_MSG_ERROR([erlang program was not properly executed, (conftest.out was not produced)])
fi
# First line
ERLANG_EI_DIR=`cat conftest.out | head -n 1`
# Second line
ERLANG_EI_LIB=`cat conftest.out | head -n 2 | tail -n 1`
# Third line
ERLANG_SSLVER=`cat conftest.out | head -n 3 | tail -n 1`
# Fourth line
ERLANG_EXMPP=`cat conftest.out | head -n 4 | tail -n 1`
# End line
ERLANG_DIR=`cat conftest.out | tail -n 1`
ERLANG_CFLAGS="-I$ERLANG_EI_DIR/include -I$ERLANG_DIR/usr/include"
ERLANG_LIBS="-L$ERLANG_EI_LIB -lerl_interface -lei"
AC_SUBST(ERLANG_CFLAGS)
AC_SUBST(ERLANG_LIBS)
AC_SUBST(ERLANG_SSLVER)
AC_SUBST(ERLANG_EXMPP)
AC_SUBST(ERLC)
AC_SUBST(ERL)
])
AC_DEFUN([AC_MOD_ENABLE],
[
$1=
make_$1=
AC_MSG_CHECKING([whether build $1])
AC_ARG_ENABLE($1,
[AC_HELP_STRING([--enable-$1], [enable $1 (default: $2)])],
[mr_enable_$1="$enableval"],
[mr_enable_$1=$2])
if test "$mr_enable_$1" = "yes"; then
$1=$1
make_$1=$1/Makefile
fi
AC_MSG_RESULT($mr_enable_$1)
AC_SUBST($1)
AC_SUBST(make_$1)
])
dnl <openssl>
AC_DEFUN([AM_WITH_OPENSSL],
[ AC_ARG_WITH(openssl,
[AC_HELP_STRING([--with-openssl=PREFIX], [prefix where OPENSSL is installed])])
unset SSL_LIBS;
unset SSL_CFLAGS;
have_openssl=no
if test x"$tls" != x; then
for ssl_prefix in $withval /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do
printf "looking for openssl in $ssl_prefix...\n"
SSL_CFLAGS="-I$ssl_prefix/include"
SSL_LIBS="-L$ssl_prefix/lib -lcrypto"
AC_CHECK_LIB(ssl, SSL_new, [ have_openssl=yes ], [ have_openssl=no ], [ $SSL_LIBS $SSL_CFLAGS ])
if test x"$have_openssl" = xyes; then
save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="-I$ssl_prefix/include $CPPFLAGS"
AC_CHECK_HEADERS(openssl/ssl.h, have_openssl_h=yes)
CPPFLAGS=$save_CPPFLAGS
if test x"$have_openssl_h" = xyes; then
have_openssl=yes
printf "openssl found in $ssl_prefix\n";
SSL_LIBS="-L$ssl_prefix/lib -lssl -lcrypto"
CPPFLAGS="-I$ssl_prefix/include $CPPFLAGS"
SSL_CFLAGS="-DHAVE_SSL"
break
fi
else
# Clear this from the autoconf cache, so in the next pass of
# this loop with different -L arguments, it will test again.
unset ac_cv_lib_ssl_SSL_new
fi
done
if test x${have_openssl} != xyes; then
AC_MSG_ERROR([Could not find development files of OpenSSL library. Install them or disable `tls' with: --disable-tls])
fi
AC_SUBST(SSL_LIBS)
AC_SUBST(SSL_CFLAGS)
fi
])
dnl <openssl/>
+233 -44
View File
@@ -1,27 +1,76 @@
%%%----------------------------------------------------------------------
%%% File : acl.erl
%%% Author : Alexey Shchepin <alexey@sevcom.net>
%%% Author : Alexey Shchepin <alexey@process-one.net>
%%% Purpose : ACL support
%%% Created : 18 Jan 2003 by Alexey Shchepin <alexey@sevcom.net>
%%% Id : $Id$
%%% Created : 18 Jan 2003 by Alexey Shchepin <alexey@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(acl).
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
-author('alexey@process-one.net').
-export([start/0,
to_record/2,
add/2,
add_list/2,
match_rule/2,
to_record/3,
add/3,
add_list/3,
match_rule/3,
for_host/1,
% for debugging only
match_acl/2]).
match_acl/3]).
-include("ejabberd.hrl").
-include_lib("stdlib/include/ms_transform.hrl").
%% @type aclspec() = all | JID_Exact | JID_Regexp | JID_Glob | Shared_Group
%% JID_Exact = {user, U} | {user, U, S} | {server, S} | {resource, R}
%% U = string()
%% S = string()
%% R = string()
%% JID_Regexp = {user_regexp, UR} | {user_regexp, UR, S} | {server_regexp, SR} | {resource_regexp, RR} | {node_regexp, UR, SR}
%% UR = string()
%% SR = string()
%% RR = string()
%% JID_Glob = {user_glob, UG} | {user_glob, UG, S} | {server_glob, SG} | {resource_glob, RG} | {node_glob, UG, SG}
%% UG = string()
%% SG = string()
%% RG = string()
%% Shared_Group = {shared_group, G} | {shared_group, G, H}
%% G = string()
%% H = string().
%% @type acl() = {acl, ACLName, ACLSpec}
%% ACLName = atom()
%% ACLSpec = aclspec().
%% Record in its Ejabberd-configuration-file variant.
%% @type storedacl() = {acl, {ACLName, Host}, ACLSpec}
%% ACLName = atom()
%% Host = global | string()
%% ACLSpec = aclspec().
%% Record in its Mnesia-table-record variant.
-record(acl, {aclname, aclspec}).
%% @spec () -> ok
start() ->
mnesia:create_table(acl,
[{disc_copies, [node()]},
@@ -30,30 +79,51 @@ start() ->
mnesia:add_table_copy(acl, node(), ram_copies),
ok.
to_record(ACLName, ACLSpec) ->
#acl{aclname = ACLName, aclspec = ACLSpec}.
%% @spec (Host, ACLName, ACLSpec) -> storedacl()
%% Host = global | string()
%% ACLName = atom()
%% ACLSpec = aclspec()
add(ACLName, ACLSpec) ->
to_record(Host, ACLName, ACLSpec) ->
#acl{aclname = {ACLName, Host}, aclspec = normalize_spec(ACLSpec)}.
%% @spec (Host, ACLName, ACLSpec) -> {atomic, ok} | {aborted, Reason}
%% Host = global | string()
%% ACLName = atom()
%% ACLSpec = all | none | aclspec()
%% Reason = term()
add(Host, ACLName, ACLSpec) ->
F = fun() ->
mnesia:write(#acl{aclname = ACLName, aclspec = ACLSpec})
mnesia:write(#acl{aclname = {ACLName, Host},
aclspec = normalize_spec(ACLSpec)})
end,
mnesia:transaction(F).
add_list(ACLs, Clear) ->
%% @spec (Host, ACLs, Clear) -> ok | false
%% Host = global | string()
%% ACLs = [acl()]
%% Clear = bool()
add_list(Host, ACLs, Clear) ->
F = fun() ->
if
Clear ->
Ks = mnesia:all_keys(acl),
Ks = mnesia:select(
acl, [{{acl, {'$1', Host}, '$2'}, [], ['$1']}]),
lists:foreach(fun(K) ->
mnesia:delete({acl, K})
mnesia:delete({acl, {K, Host}})
end, Ks);
true ->
ok
end,
lists:foreach(fun(ACL) ->
case ACL of
#acl{} ->
mnesia:write(ACL)
#acl{aclname = ACLName,
aclspec = ACLSpec} ->
mnesia:write(
#acl{aclname = {ACLName, Host},
aclspec = normalize_spec(ACLSpec)})
end
end, ACLs)
end,
@@ -64,87 +134,206 @@ add_list(ACLs, Clear) ->
false
end.
%% @spec (String) -> Prepd_String
%% String = string()
%% Prepd_String = string()
normalize(String) ->
exmpp_stringprep:nodeprep(String).
%% @spec (ACLSpec) -> Normalized_ACLSpec
%% ACLSpec = all | none | aclspec()
%% Normalized_ACLSpec = aclspec()
normalize_spec({A, B}) ->
{A, normalize(B)};
normalize_spec({A, B, C}) ->
{A, normalize(B), normalize(C)};
normalize_spec(all) ->
all;
normalize_spec(none) ->
none.
match_rule(Rule, JID) ->
%% @spec (Host, Rule, JID) -> Access
%% Host = global | string()
%% Rule = all | none | atom()
%% JID = exmpp_jid:jid()
%% Access = allow | deny | atom()
match_rule(global, Rule, JID) ->
case Rule of
all -> allow;
none -> deny;
_ ->
case ejabberd_config:get_global_option({access, Rule}) of
case ejabberd_config:get_global_option({access, Rule, global}) of
undefined ->
deny;
ACLs ->
match_acls(ACLs, JID)
GACLs ->
match_acls(GACLs, JID, global)
end
end;
match_rule(Host, Rule, JID) ->
case Rule of
all -> allow;
none -> deny;
_ ->
case ejabberd_config:get_global_option({access, Rule, global}) of
undefined ->
case ejabberd_config:get_global_option({access, Rule, Host}) of
undefined ->
deny;
ACLs ->
match_acls(ACLs, JID, Host)
end;
GACLs ->
case ejabberd_config:get_global_option({access, Rule, Host}) of
undefined ->
match_acls(GACLs, JID, Host);
ACLs ->
case lists:reverse(GACLs) of
[{allow, all} | Rest] ->
match_acls(
lists:reverse(Rest) ++ ACLs ++
[{allow, all}],
JID, Host);
_ ->
match_acls(GACLs ++ ACLs, JID, Host)
end
end
end
end.
match_acls([], _) ->
%% @spec (ACLs, JID, Host) -> Access
%% ACLs = [{Access, ACLName}]
%% Access = deny | atom()
%% ACLName = atom()
%% JID = exmpp_jid:jid()
%% Host = string()
match_acls([], _, _Host) ->
deny;
match_acls([{Access, ACL} | ACLs], JID) ->
case match_acl(ACL, JID) of
match_acls([{Access, ACLName} | ACLs], JID, Host) ->
case match_acl(ACLName, JID, Host) of
true ->
Access;
_ ->
match_acls(ACLs, JID)
match_acls(ACLs, JID, Host)
end.
match_acl(ACL, JID) ->
case ACL of
%% @spec (ACLName, JID, Host) -> bool()
%% ACLName = all | none | atom()
%% JID = exmpp_jid:jid()
%% Host = string()
match_acl(ACLName, JID, Host) ->
case ACLName of
all -> true;
none -> false;
_ ->
{User, Server, Resource} = jlib:jid_tolower(JID),
lists:any(fun(#acl{aclspec = Spec}) ->
User = exmpp_jid:prep_node_as_list(JID),
Server = exmpp_jid:prep_domain_as_list(JID),
Resource = exmpp_jid:prep_resource_as_list(JID),
lists:any(fun(#acl{aclname=Name, aclspec = Spec}) ->
case Spec of
all ->
true;
{user, U} ->
(U == User) andalso (?MYNAME == Server);
(U == User)
andalso
((Host == Server) orelse
((Host == global) andalso
?IS_MY_HOST(Server)));
{user, U, S} ->
(U == User) andalso (S == Server);
{server, S} ->
S == Server;
{resource, R} ->
R == Resource;
{user_regexp, UR} when is_tuple(Name),
element(2, Name) =:= global ->
?IS_MY_HOST(Server)
andalso is_regexp_match(User, UR);
{user_regexp, UR} ->
(?MYNAME == Server) andalso
is_regexp_match(User, UR);
((Host == Server) orelse
((Host == global) andalso
?IS_MY_HOST(Server)))
andalso is_regexp_match(User, UR);
{shared_group, G} ->
mod_shared_roster:is_user_in_group({User, Server}, G, Host);
{shared_group, G, H} ->
mod_shared_roster:is_user_in_group({User, Server}, G, H);
{user_regexp, UR, S} ->
(S == Server) andalso
is_regexp_match(User, UR);
{server_regexp, SR} ->
is_regexp_match(Server, SR);
{resource_regexp, RR} ->
is_regexp_match(Resource, RR);
{node_regexp, UR, SR} ->
is_regexp_match(Server, SR) andalso
is_regexp_match(User, UR);
{user_glob, UR} ->
(?MYNAME == Server) andalso
((Host == Server) orelse
((Host == global) andalso
?IS_MY_HOST(Server)))
andalso
is_glob_match(User, UR);
{user_glob, UR, S} ->
(S == Server) andalso
is_glob_match(User, UR);
{server_glob, SR} ->
is_glob_match(Server, SR);
{resource_glob, RR} ->
is_glob_match(Resource, RR);
{node_glob, UR, SR} ->
is_glob_match(Server, SR) andalso
is_glob_match(User, UR)
is_glob_match(User, UR);
WrongSpec ->
?ERROR_MSG(
"Wrong ACL expression: ~p~n"
"Check your config file and reload it with the override_acls option enabled",
[WrongSpec]),
false
end
end, ets:lookup(acl, ACL))
end,
ets:lookup(acl, {ACLName, global}) ++
ets:lookup(acl, {ACLName, Host}))
end.
%% @spec (String, RegExp) -> bool()
%% String = string() | undefined
%% RegExp = string()
is_regexp_match(undefined, _RegExp) ->
false;
is_regexp_match(String, RegExp) ->
case regexp:first_match(String, RegExp) of
try re:run(String, RegExp, [{capture, none}]) of
nomatch ->
false;
{match, _, _} ->
true;
{error, ErrDesc} ->
match ->
true
catch
_:ErrDesc ->
?ERROR_MSG(
"Wrong regexp ~p in ACL: ~p",
[RegExp, lists:flatten(regexp:format_error(ErrDesc))]),
"Wrong regexp ~p in ACL:~n~p",
[RegExp, ErrDesc]),
false
end.
%% @spec (String, Glob) -> bool()
%% String = string() | undefined
%% Glob = string()
is_glob_match(String, Glob) ->
is_regexp_match(String, regexp:sh_to_awk(Glob)).
is_regexp_match(String, xmerl_regexp:sh_to_awk(Glob)).
for_host(Host) ->
mnesia:select(acl,
ets:fun2ms(fun (#acl{aclname = {_ACLName, H}})
when H =:= Host ->
object()
end)).
-229
View File
@@ -1,229 +0,0 @@
AC_DEFUN(AM_WITH_EXPAT,
[ AC_ARG_WITH(expat,
[ --with-expat=PREFIX prefix where EXPAT is installed])
EXPAT_CFLAGS=
EXPAT_LIBS=
if test x"$with_expat" != x; then
EXPAT_CFLAGS="-I$with_expat/include"
EXPAT_LIBS="-L$with_expat/lib"
fi
AC_CHECK_LIB(expat, XML_ParserCreate,
[ EXPAT_LIBS="$EXPAT_LIBS -lexpat"
expat_found=yes ],
[ expat_found=no ],
"$EXPAT_LIBS")
if test $expat_found = no; then
AC_MSG_ERROR([Could not find the Expat library])
fi
expat_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $EXPAT_CFLAGS"
AC_CHECK_HEADERS(expat.h, , expat_found=no)
if test $expat_found = no; then
AC_MSG_ERROR([Could not find expat.h])
fi
CFLAGS="$expat_save_CFLAGS"
AC_SUBST(EXPAT_CFLAGS)
AC_SUBST(EXPAT_LIBS)
])
AC_DEFUN(AM_WITH_ERLANG,
[ AC_ARG_WITH(erlang,
[ --with-erlang=PREFIX path to erlc and erl ])
AC_PATH_TOOL(ERLC, erlc, , $PATH:$with_erlang:$with_erlang/bin)
AC_PATH_TOOL(ERL, erl, , $PATH:$with_erlang:$with_erlang/bin)
if test "z$ERLC" == "z" || test "z$ERL" == "z"; then
AC_MSG_ERROR([erlang not found])
fi
cat >>conftest.erl <<_EOF
-module(conftest).
-author('alexey@sevcom.net').
-export([[start/0]]).
start() ->
EIDirS = code:lib_dir("erl_interface") ++ "\n",
RootDirS = code:root_dir() ++ "\n",
file:write_file("conftest.out", list_to_binary(EIDirS ++ RootDirS)),
halt().
_EOF
if ! $ERLC conftest.erl; then
AC_MSG_ERROR([could not compile sample program])
fi
if ! $ERL -s conftest -noshell; then
AC_MSG_ERROR([could not run sample program])
fi
if ! test -f conftest.out; then
AC_MSG_ERROR([erlang program was not properly executed, (conftest.out was not produced)])
fi
ERLANG_EI_DIR=`cat conftest.out | head -n 1`
ERLANG_DIR=`cat conftest.out | tail -n 1`
ERLANG_CFLAGS="-I$ERLANG_EI_DIR/include -I$ERLANG_DIR/usr/include"
ERLANG_LIBS="-L$ERLANG_EI_DIR/lib -lerl_interface -lei"
AC_SUBST(ERLANG_CFLAGS)
AC_SUBST(ERLANG_LIBS)
AC_SUBST(ERLC)
AC_SUBST(ERL)
])
AC_DEFUN(AC_MOD_ENABLE,
[
$1=
make_$1=
AC_MSG_CHECKING([whether build $1])
AC_ARG_ENABLE($1,
[ --enable-$1 enable $1 (default: $2)],
[mr_enable_$1="$enableval"],
[mr_enable_$1=$2])
if test "$mr_enable_$1" = $2; then
$1=$1
make_$1=$1/Makefile
fi
AC_MSG_RESULT($mr_enable_$1)
AC_SUBST($1)
AC_SUBST(make_$1)
])
dnl From Bruno Haible.
AC_DEFUN([AM_ICONV],
[
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
dnl those with the standalone portable GNU libiconv installed).
AC_ARG_WITH([libiconv-prefix],
[ --with-libiconv-prefix=PREFIX prefix where libiconv is installed], [
for dir in `echo "$withval" | tr : ' '`; do
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
if test -d $dir/include; then CFLAGS="$CFLAGS -I$dir/include"; fi
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
done
])
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_func_iconv=yes)
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS -liconv"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes)
LIBS="$am_save_LIBS"
fi
dnl trying /usr/local
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
am_save_CFLAGS="$CFLAGS"
am_save_LDFLAGS="$LDFLAGS"
LIBS="$LIBS -liconv"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
CFLAGS="$CFLAGS -I/usr/local/include"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes
CPPFLAGS="$CPPFLAGS -I/usr/local/include",
LDFLAGS="$am_save_LDFLAGS"
CFLAGS="$am_save_CFLAGS")
LIBS="$am_save_LIBS"
fi
])
if test "$am_cv_func_iconv" = yes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
AC_MSG_CHECKING([for iconv declaration])
AC_CACHE_VAL(am_cv_proto_iconv, [
AC_TRY_COMPILE([
#include <stdlib.h>
#include <iconv.h>
extern
#ifdef __cplusplus
"C"
#endif
#if defined(__STDC__) || defined(__cplusplus)
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
#else
size_t iconv();
#endif
], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
AC_MSG_RESULT([$]{ac_t:-
}[$]am_cv_proto_iconv)
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
[Define as const if the declaration of iconv() needs const.])
fi
LIBICONV=
if test "$am_cv_lib_iconv" = yes; then
LIBICONV="-liconv"
fi
AC_SUBST(LIBICONV)
])
dnl <openssl>
AC_DEFUN(AM_WITH_OPENSSL,
[ AC_ARG_WITH(openssl,
[ --with-openssl=PREFIX prefix where OPENSSL is installed ])
unset SSL_LIBS;
unset SSL_CFLAGS;
have_openssl=no
if test x"$tls" != x; then
for ssl_prefix in $withval /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do
printf "looking for openssl in $ssl_prefix...\n"
SSL_CFLAGS="-I$ssl_prefix/include/openssl"
SSL_LIBS="-L$ssl_prefix/lib -lcrypto"
AC_CHECK_LIB(ssl, SSL_new, [ have_openssl=yes ], [ have_openssl=no ], [ $SSL_LIBS $SSL_CFLAGS ])
if test x"$have_openssl" = xyes; then
save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="-I$ssl_prefix/lib $CPPFLAGS"
AC_CHECK_HEADERS(openssl/ssl.h, have_openssl_h=yes)
CPPFLAGS=$save_CPPFLAGS
if test x"$have_openssl_h" = xyes; then
have_openssl=yes
printf "openssl found in $ssl_prefix\n";
SSL_LIBS="-L$ssl_prefix/lib -lssl -lcrypto"
CPPFLAGS="-I$ssl_prefix/lib $CPPFLAGS"
SSL_CFLAGS="-DHAVE_SSL"
break
fi
fi
done
if test x${have_openssl} != xyes; then
AC_MSG_ERROR([openssl library cannot be found. Install openssl or disable `tls' module (--disable-tls).])
fi
AC_SUBST(SSL_LIBS)
AC_SUBST(SSL_CFLAGS)
fi
])
dnl <openssl/>
+132
View File
@@ -0,0 +1,132 @@
%%%----------------------------------------------------------------------
%%% File : adhoc.erl
%%% Author : Magnus Henoch <henoch@dtek.chalmers.se>
%%% Purpose : Provide helper functions for ad-hoc commands (XEP-0050)
%%% Created : 31 Oct 2005 by Magnus Henoch <henoch@dtek.chalmers.se>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(adhoc).
-author('henoch@dtek.chalmers.se').
-export([parse_request/1,
produce_response/2,
produce_response/1]).
-include_lib("exmpp/include/exmpp.hrl").
-include("ejabberd.hrl").
-include("adhoc.hrl").
%% Parse an ad-hoc request. Return either an adhoc_request record or
%% an {error, ErrorType} tuple.
parse_request(#iq{type = Type, ns = NS, payload = SubEl, lang = Lang}) ->
try
case {Type, NS} of
{set, ?NS_ADHOC} ->
?DEBUG("entering parse_request...", []),
Node = exmpp_xml:get_attribute_as_list(SubEl, <<"node">>, ""),
SessionID = exmpp_xml:get_attribute_as_list(SubEl, <<"sessionid">>, ""),
Action = exmpp_xml:get_attribute_as_list(SubEl, <<"action">>, ""),
XData = find_xdata_el(SubEl),
AllEls = exmpp_xml:get_child_elements(SubEl),
Others = case XData of
false ->
AllEls;
_ ->
lists:delete(XData, AllEls)
end,
#adhoc_request{lang = Lang,
node = Node,
sessionid = SessionID,
action = Action,
xdata = XData,
others = Others};
_ ->
{error, 'bad-request'}
end
catch
_ ->
{error, 'bad-request'}
end.
%% Borrowed from mod_vcard.erl
find_xdata_el(#xmlel{children = SubEls}) ->
find_xdata_el1(SubEls).
find_xdata_el1([]) ->
false;
find_xdata_el1([#xmlel{ns = ?NS_DATA_FORMS} = El | _Els]) ->
El;
find_xdata_el1([_ | Els]) ->
find_xdata_el1(Els).
%% Produce a <command/> node to use as response from an adhoc_response
%% record, filling in values for language, node and session id from
%% the request.
produce_response(#adhoc_request{lang = Lang,
node = Node,
sessionid = SessionID},
Response) ->
produce_response(Response#adhoc_response{lang = Lang,
node = Node,
sessionid = SessionID}).
%% Produce a <command/> node to use as response from an adhoc_response
%% record.
produce_response(#adhoc_response{lang = _Lang,
node = Node,
sessionid = ProvidedSessionID,
status = Status,
defaultaction = DefaultAction,
actions = Actions,
notes = Notes,
elements = Elements}) ->
SessionID = if is_list(ProvidedSessionID), ProvidedSessionID /= "" ->
ProvidedSessionID;
true ->
jlib:now_to_utc_string(now())
end,
case Actions of
[] ->
ActionsEls = [];
_ ->
case DefaultAction of
"" ->
ActionsElAttrs = [];
_ ->
ActionsElAttrs = [?XMLATTR(<<"execute">>, DefaultAction)]
end,
ActionsEls = [#xmlel{ns = ?NS_ADHOC, name = 'actions', attrs =
ActionsElAttrs, children =
[#xmlel{ns = ?NS_ADHOC, name = Action} || Action <- Actions]}]
end,
NotesEls = lists:map(fun({Type, Text}) ->
#xmlel{ns = ?NS_ADHOC, name = 'note', attrs =
[?XMLATTR(<<"type">>, Type)],
children = [#xmlcdata{cdata = list_to_binary(Text)}]}
end, Notes),
#xmlel{ns = ?NS_ADHOC, name = 'command', attrs =
[?XMLATTR(<<"sessionid">>, SessionID),
?XMLATTR(<<"node">>, Node),
?XMLATTR(<<"status">>, Status)], children =
ActionsEls ++ NotesEls ++ Elements}.
+36
View File
@@ -0,0 +1,36 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-record(adhoc_request, {lang,
node,
sessionid,
action,
xdata,
others}).
-record(adhoc_response, {lang,
node,
sessionid,
status,
defaultaction = "",
actions = [],
notes = [],
elements = []}).
+604
View File
@@ -0,0 +1,604 @@
%%%-------------------------------------------------------------------
%%% File : cache_tab.erl
%%% Author : Evgeniy Khramtsov <ekhramtsov@process-one.net>
%%% Description : Caching key-value table
%%%
%%% Created : 29 Aug 2010 by Evgeniy Khramtsov <ekhramtsov@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%-------------------------------------------------------------------
-module(cache_tab).
-define(GEN_SERVER, gen_server).
-behaviour(?GEN_SERVER).
%% API
-export([start_link/4, new/2, delete/1, delete/3, lookup/3,
insert/4, info/2, tab2list/1, setopts/2,
dirty_lookup/3, dirty_insert/4, dirty_delete/3,
all/0, test/0]).
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
terminate/2, code_change/3]).
-include("ejabberd.hrl").
-record(state, {tab = treap:empty(),
name,
size = 0,
owner,
max_size,
life_time,
warn,
hits = 0,
miss = 0,
procs_num,
cache_missed,
lru,
shrink_size}).
-define(PROCNAME, ?MODULE).
-define(CALL_TIMEOUT, 60000).
%% Defaults
-define(MAX_SIZE, 1000).
-define(WARN, true).
-define(CACHE_MISSED, true).
-define(LRU, true).
-define(LIFETIME, 600). %% 10 minutes
%%====================================================================
%% API
%%====================================================================
start_link(Proc, Tab, Opts, Owner) ->
?GEN_SERVER:start_link({local, Proc}, ?MODULE,
[Tab, Opts, get_proc_num(), Owner], []).
new(Tab, Opts) ->
Res = lists:flatmap(
fun(Proc) ->
Spec = {{Tab, Proc},
{?MODULE, start_link,
[Proc, Tab, Opts, self()]},
permanent,
brutal_kill,
worker,
[?MODULE]},
case supervisor:start_child(cache_tab_sup, Spec) of
{ok, _Pid} ->
[ok];
R ->
[R]
end
end, get_all_procs(Tab)),
case lists:filter(fun(ok) -> false; (_) -> true end, Res) of
[] ->
ok;
Err ->
{error, Err}
end.
delete(Tab) ->
lists:foreach(
fun(Proc) ->
supervisor:terminate_child(cache_tab_sup, {Tab, Proc}),
supervisor:delete_child(cache_tab_sup, {Tab, Proc})
end, get_all_procs(Tab)).
delete(Tab, Key, F) ->
?GEN_SERVER:call(
get_proc_by_hash(Tab, Key), {delete, Key, F}, ?CALL_TIMEOUT).
dirty_delete(Tab, Key, F) ->
F(),
?GEN_SERVER:call(
get_proc_by_hash(Tab, Key), {cache_delete, Key}, ?CALL_TIMEOUT).
lookup(Tab, Key, F) ->
?GEN_SERVER:call(
get_proc_by_hash(Tab, Key), {lookup, Key, F}, ?CALL_TIMEOUT).
dirty_lookup(Tab, Key, F) ->
Proc = get_proc_by_hash(Tab, Key),
case ?GEN_SERVER:call(Proc, {cache_lookup, Key}, ?CALL_TIMEOUT) of
{ok, '$cached_mismatch'} ->
error;
{ok, Val} ->
{ok, Val};
_ ->
{Result, NewVal} = case F() of
{ok, Val} ->
{{ok, Val}, Val};
_ ->
{error, '$cached_mismatch'}
end,
?GEN_SERVER:call(
Proc, {cache_insert, Key, NewVal}, ?CALL_TIMEOUT),
Result
end.
insert(Tab, Key, Val, F) ->
?GEN_SERVER:call(
get_proc_by_hash(Tab, Key), {insert, Key, Val, F}, ?CALL_TIMEOUT).
dirty_insert(Tab, Key, Val, F) ->
F(),
?GEN_SERVER:call(
get_proc_by_hash(Tab, Key), {cache_insert, Key, Val}, ?CALL_TIMEOUT).
info(Tab, Info) ->
case lists:map(
fun(Proc) ->
?GEN_SERVER:call(Proc, {info, Info}, ?CALL_TIMEOUT)
end, get_all_procs(Tab)) of
Res when Info == size ->
{ok, lists:sum(Res)};
Res when Info == all ->
{ok, Res};
Res when Info == ratio ->
{H, M} = lists:foldl(
fun({Hits, Miss}, {HitsAcc, MissAcc}) ->
{HitsAcc + Hits, MissAcc + Miss}
end, {0, 0}, Res),
{ok, [{hits, H}, {miss, M}]};
_ ->
{error, badarg}
end.
setopts(Tab, Opts) ->
lists:foreach(
fun(Proc) ->
?GEN_SERVER:call(Proc, {setopts, Opts}, ?CALL_TIMEOUT)
end, get_all_procs(Tab)).
tab2list(Tab) ->
lists:flatmap(
fun(Proc) ->
?GEN_SERVER:call(Proc, tab2list, ?CALL_TIMEOUT)
end, get_all_procs(Tab)).
all() ->
lists:usort(
[Tab || {{Tab, _}, _, _, _} <- supervisor:which_children(cache_tab_sup)]).
%%====================================================================
%% gen_server callbacks
%%====================================================================
init([Tab, Opts, N, Pid]) ->
State = #state{procs_num = N,
owner = Pid,
name = Tab},
{ok, do_setopts(State, Opts)}.
handle_call({lookup, Key, F}, _From, #state{tab = T} = State) ->
CleanPrio = clean_priority(State#state.life_time),
case treap:lookup(Key, T) of
{ok, Prio, Val} when (State#state.lru == true) or (Prio =< CleanPrio) ->
Hits = State#state.hits,
NewState = treap_update(Key, Val, State#state{hits = Hits + 1}),
case Val of
'$cached_mismatch' ->
{reply, error, NewState};
_ ->
{reply, {ok, Val}, NewState}
end;
_ ->
case catch F() of
{ok, Val} ->
Miss = State#state.miss,
NewState = treap_insert(Key, Val, State),
{reply, {ok, Val}, NewState#state{miss = Miss + 1}};
{'EXIT', Reason} ->
print_error(lookup, [Key], Reason, State),
{reply, error, State};
_ ->
Miss = State#state.miss,
NewState = State#state{miss = Miss + 1},
if State#state.cache_missed ->
{reply, error,
treap_insert(Key, '$cached_mismatch', NewState)};
true ->
{reply, error, NewState}
end
end
end;
handle_call({cache_lookup, Key}, _From, #state{tab = T} = State) ->
CleanPrio = clean_priority(State#state.life_time),
case treap:lookup(Key, T) of
{ok, Prio, Val} when (State#state.lru == true) or (Prio =< CleanPrio) ->
Hits = State#state.hits,
NewState = treap_update(Key, Val, State#state{hits = Hits + 1}),
{reply, {ok, Val}, NewState};
_ ->
Miss = State#state.miss,
NewState = State#state{miss = Miss + 1},
{reply, error, NewState}
end;
handle_call({insert, Key, Val, F}, _From, #state{tab = T} = State) ->
case treap:lookup(Key, T) of
{ok, _Prio, Val} ->
{reply, ok, treap_update(Key, Val, State)};
_ ->
case catch F() of
{'EXIT', Reason} ->
print_error(insert, [Key, Val], Reason, State),
{reply, ok, State};
_ ->
{reply, ok, treap_insert(Key, Val, State)}
end
end;
handle_call({cache_insert, _, '$cached_mismatch'}, _From,
#state{cache_missed = false} = State) ->
{reply, ok, State};
handle_call({cache_insert, Key, Val}, _From, State) ->
{reply, ok, treap_insert(Key, Val, State)};
handle_call({delete, Key, F}, _From, State) ->
NewState = treap_delete(Key, State),
case catch F() of
{'EXIT', Reason} ->
print_error(delete, [Key], Reason, State);
_ ->
ok
end,
{reply, ok, NewState};
handle_call({cache_delete, Key}, _From, State) ->
NewState = treap_delete(Key, State),
{reply, ok, NewState};
handle_call({info, Info}, _From, State) ->
Res = case Info of
size ->
State#state.size;
ratio ->
{State#state.hits, State#state.miss};
all ->
[{max_size, State#state.max_size},
{life_time, State#state.life_time},
{shrink_size, State#state.shrink_size},
{size, State#state.size},
{owner, State#state.owner},
{hits, State#state.hits},
{miss, State#state.miss},
{cache_missed, State#state.cache_missed},
{lru, State#state.lru},
{warn, State#state.warn}];
_ ->
badarg
end,
{reply, Res, State};
handle_call(tab2list, _From, #state{tab = T} = State) ->
Res = treap:fold(
fun({Key, _, Val}, Acc) ->
[{Key, Val}|Acc]
end, [], T),
{reply, Res, State};
handle_call({setopts, Opts}, _From, State) ->
{reply, ok, do_setopts(State, Opts)};
handle_call(_Request, _From, State) ->
Reply = ok,
{reply, Reply, State}.
handle_cast(_Msg, State) ->
{noreply, State}.
handle_info(_Info, State) ->
{noreply, State}.
terminate(_Reason, _State) ->
ok.
code_change(_OldVsn, State, _Extra) ->
{ok, State}.
%%--------------------------------------------------------------------
%%% Internal functions
%%--------------------------------------------------------------------
do_setopts(#state{procs_num = N} = State, Opts) ->
MaxSize = case {proplists:get_value(max_size, Opts),
State#state.max_size} of
{MS, _} when is_integer(MS), MS > 0 ->
round(MS/N);
{unlimited, _} ->
unlimited;
{_, undefined} ->
round(?MAX_SIZE/N);
{_, MS} ->
MS
end,
LifeTime = case {proplists:get_value(life_time, Opts),
State#state.life_time} of
{LT, _} when is_integer(LT), LT > 0 ->
LT*1000*1000;
{unlimited, _} ->
unlimited;
{_, undefined} ->
?LIFETIME*1000*1000;
{_, LT} ->
LT
end,
ShrinkSize = case {proplists:get_value(shrink_size, Opts),
State#state.shrink_size} of
{SS, _} when is_integer(SS), SS > 0 ->
round(SS/N);
_ when is_integer(MaxSize) ->
round(MaxSize/2);
_ ->
unlimited
end,
Warn = case {proplists:get_value(warn, Opts),
State#state.warn} of
{true, _} ->
true;
{false, _} ->
false;
{_, undefined} ->
?WARN;
{_, W} ->
W
end,
CacheMissed = case proplists:get_value(
cache_missed, Opts, State#state.cache_missed) of
false ->
false;
true ->
true;
_ ->
?CACHE_MISSED
end,
LRU = case proplists:get_value(
lru, Opts, State#state.lru) of
false ->
false;
true ->
true;
_ ->
?LRU
end,
State#state{max_size = MaxSize,
warn = Warn,
life_time = LifeTime,
cache_missed = CacheMissed,
lru = LRU,
shrink_size = ShrinkSize}.
get_proc_num() ->
erlang:system_info(logical_processors).
get_proc_by_hash(Tab, Term) ->
N = erlang:phash2(Term, get_proc_num()) + 1,
get_proc(Tab, N).
get_proc(Tab, N) ->
list_to_atom(atom_to_list(?PROCNAME) ++ "_" ++
atom_to_list(Tab) ++ "_" ++ integer_to_list(N)).
get_all_procs(Tab) ->
[get_proc(Tab, N) || N <- lists:seq(1, get_proc_num())].
now_priority() ->
{MSec, Sec, USec} = now(),
-((MSec*1000000 + Sec)*1000000 + USec).
clean_priority(LifeTime) ->
if is_integer(LifeTime) ->
now_priority() + LifeTime;
true ->
unlimited
end.
treap_update(Key, Val, #state{tab = T, lru = LRU} = State) ->
if LRU ->
Priority = now_priority(),
NewT = treap:insert(Key, Priority, Val, T),
State#state{tab = NewT};
true ->
State
end.
treap_insert(Key, Val, State) ->
State1 = clean_treap(State),
#state{size = Size} = State2 = shrink_treap(State1),
T = State2#state.tab,
case treap:lookup(Key, T) of
{ok, _, Val} ->
treap_update(Key, Val, State2);
{ok, _, _} ->
NewT = treap:insert(Key, now_priority(), Val, T),
State2#state{tab = NewT};
_ ->
NewT = treap:insert(Key, now_priority(), Val, T),
State2#state{tab = NewT, size = Size+1}
end.
treap_delete(Key, #state{tab = T, size = Size} = State) ->
case treap:lookup(Key, T) of
{ok, _, _} ->
NewT = treap:delete(Key, T),
clean_treap(State#state{tab = NewT, size = Size-1});
_ ->
State
end.
clean_treap(#state{tab = T, size = Size, life_time = LifeTime} = State) ->
if is_integer(LifeTime) ->
Priority = now_priority(),
{Cleaned, NewT} = clean_treap(T, Priority + LifeTime, 0),
State#state{size = Size - Cleaned, tab = NewT};
true ->
State
end.
clean_treap(Treap, CleanPriority, N) ->
case treap:is_empty(Treap) of
true ->
{N, Treap};
false ->
{_Key, Priority, _Value} = treap:get_root(Treap),
if Priority > CleanPriority ->
clean_treap(treap:delete_root(Treap), CleanPriority, N+1);
true ->
{N, Treap}
end
end.
shrink_treap(#state{tab = T,
max_size = MaxSize,
shrink_size = ShrinkSize,
warn = Warn,
size = Size} = State) when Size >= MaxSize ->
if Warn ->
?WARNING_MSG("shrinking table:~n"
"** Table: ~p~n"
"** Processes Number: ~p~n"
"** Max Size: ~p items~n"
"** Shrink Size: ~p items~n"
"** Life Time: ~p microseconds~n"
"** Hits/Miss: ~p/~p~n"
"** Owner: ~p~n"
"** Cache Missed: ~p~n"
"** Instruction: you have to tune cacheing options"
" if this message repeats too frequently",
[State#state.name, State#state.procs_num,
MaxSize, ShrinkSize, State#state.life_time,
State#state.hits, State#state.miss,
State#state.owner, State#state.cache_missed]);
true ->
ok
end,
{Shrinked, NewT} = shrink_treap(T, ShrinkSize, 0),
State#state{tab = NewT, size = Size - Shrinked};
shrink_treap(State) ->
State.
shrink_treap(T, ShrinkSize, ShrinkSize) ->
{ShrinkSize, T};
shrink_treap(T, ShrinkSize, N) ->
case treap:is_empty(T) of
true ->
{N, T};
false ->
shrink_treap(treap:delete_root(T), ShrinkSize, N+1)
end.
print_error(Operation, Args, Reason, State) ->
?ERROR_MSG("callback failed:~n"
"** Tab: ~p~n"
"** Owner: ~p~n"
"** Operation: ~p~n"
"** Args: ~p~n"
"** Reason: ~p",
[State#state.name, State#state.owner,
Operation, Args, Reason]).
%%--------------------------------------------------------------------
%%% Tests
%%--------------------------------------------------------------------
-define(lookup, dirty_lookup).
-define(delete, dirty_delete).
-define(insert, dirty_insert).
%%-define(lookup, lookup).
%%-define(delete, delete).
%%-define(insert, insert).
test() ->
LifeTime = 2,
ok = new(test_tbl, [{life_time, LifeTime}, {max_size, unlimited}]),
check([]),
ok = ?insert(test_tbl, "key", "value", fun() -> ok end),
check([{"key", "value"}]),
{ok, "value"} = ?lookup(test_tbl, "key", fun() -> error end),
check([{"key", "value"}]),
io:format("** waiting for ~p seconds to check if LRU works fine...~n",
[LifeTime+1]),
timer:sleep(timer:seconds(LifeTime+1)),
ok = ?insert(test_tbl, "key1", "value1", fun() -> ok end),
check([{"key1", "value1"}]),
ok = ?delete(test_tbl, "key1", fun() -> ok end),
{ok, "value"} = ?lookup(test_tbl, "key", fun() -> {ok, "value"} end),
check([{"key", "value"}]),
ok = ?delete(test_tbl, "key", fun() -> ok end),
check([]),
%% io:format("** testing buggy callbacks...~n"),
%% delete(test_tbl, "key", fun() -> erlang:error(badarg) end),
%% insert(test_tbl, "key", "val", fun() -> erlang:error(badarg) end),
%% lookup(test_tbl, "key", fun() -> erlang:error(badarg) end),
check([]),
delete(test_tbl),
test1().
test1() ->
MaxSize = 10,
ok = new(test_tbl, [{max_size, MaxSize}, {shrink_size, 1}, {warn, false}]),
lists:foreach(
fun(N) ->
ok = ?insert(test_tbl, N, N, fun() -> ok end)
end, lists:seq(1, MaxSize*get_proc_num())),
{ok, MaxSize} = info(test_tbl, size),
delete(test_tbl),
test2().
test2() ->
LifeTime = 2,
ok = new(test_tbl, [{life_time, LifeTime},
{max_size, unlimited},
{lru, false}]),
check([]),
ok = ?insert(test_tbl, "key", "value", fun() -> ok end),
{ok, "value"} = ?lookup(test_tbl, "key", fun() -> error end),
check([{"key", "value"}]),
io:format("** waiting for ~p seconds to check if non-LRU works fine...~n",
[LifeTime+1]),
timer:sleep(timer:seconds(LifeTime+1)),
error = ?lookup(test_tbl, "key", fun() -> error end),
check([{"key", '$cached_mismatch'}]),
ok = ?insert(test_tbl, "key", "value1", fun() -> ok end),
check([{"key", "value1"}]),
delete(test_tbl),
io:format("** testing speed, this may take a while...~n"),
test3(1000),
test3(10000),
test3(100000),
test3(1000000).
test3(Iter) ->
ok = new(test_tbl, [{max_size, unlimited}, {life_time, unlimited}]),
L = lists:seq(1, Iter),
T1 = now(),
lists:foreach(
fun(N) ->
ok = ?insert(test_tbl, N, N, fun() -> ok end)
end, L),
io:format("** average insert (size = ~p): ~p usec~n",
[Iter, round(timer:now_diff(now(), T1)/Iter)]),
T2 = now(),
lists:foreach(
fun(N) ->
{ok, N} = ?lookup(test_tbl, N, fun() -> ok end)
end, L),
io:format("** average lookup (size = ~p): ~p usec~n",
[Iter, round(timer:now_diff(now(), T2)/Iter)]),
{ok, Iter} = info(test_tbl, size),
delete(test_tbl).
check(List) ->
Size = length(List),
{ok, Size} = info(test_tbl, size),
List = tab2list(test_tbl).
+53
View File
@@ -0,0 +1,53 @@
%%%-------------------------------------------------------------------
%%% File : cache_tab_sup.erl
%%% Author : Evgeniy Khramtsov <ekhramtsov@process-one.net>
%%% Description : Cache tables supervisor
%%%
%%% Created : 30 Aug 2010 by Evgeniy Khramtsov <ekhramtsov@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%-------------------------------------------------------------------
-module(cache_tab_sup).
-behaviour(supervisor).
%% API
-export([start_link/0]).
%% Supervisor callbacks
-export([init/1]).
-define(SERVER, ?MODULE).
%%====================================================================
%% API functions
%%====================================================================
start_link() ->
supervisor:start_link({local, ?SERVER}, ?MODULE, []).
%%====================================================================
%% Supervisor callbacks
%%====================================================================
init([]) ->
{ok, {{one_for_one,10,1}, []}}.
%%====================================================================
%% Internal functions
%%====================================================================
+1533
View File
File diff suppressed because it is too large Load Diff
+1693
View File
File diff suppressed because it is too large Load Diff
-4788
View File
File diff suppressed because it is too large Load Diff
+143 -11
View File
@@ -2,41 +2,173 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.53)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_INIT(ejabberd, m4_esyscmd([grep -o -E "\{vsn,.\".*\"\}" ejabberd.app | cut -d \" -f 2 | tr -d '\n']), [ejabberd@process-one.net], [ejabberd])
# Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
if test "x$GCC" = "xyes"; then
CFLAGS="$CFLAGS -Wall"
fi
#locating erlang
AM_WITH_ERLANG
#locating iconv
AM_ICONV
#locating libexpat
AM_WITH_EXPAT
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
# Check Erlang headers are installed
#AC_CHECK_HEADER(erl_driver.h,,[AC_MSG_ERROR([cannot find Erlang header files])])
# Change default prefix
AC_PREFIX_DEFAULT(/)
# Checks for library functions.
AC_FUNC_MALLOC
AC_HEADER_STDC
AC_MOD_ENABLE(mod_pubsub, yes)
AC_MOD_ENABLE(mod_irc, yes)
AC_MOD_ENABLE(mod_muc, yes)
AC_MOD_ENABLE(mod_proxy65, yes)
AC_MOD_ENABLE(mod_pubsub, yes)
AC_MOD_ENABLE(eldap, yes)
AC_MOD_ENABLE(web, yes)
AC_MOD_ENABLE(odbc, no)
AC_MOD_ENABLE(tls, yes)
AC_MOD_ENABLE(web, yes)
AC_MOD_ENABLE(ejabberd_zlib, yes)
#locating zlib
AM_WITH_ZLIB
AC_MOD_ENABLE(pam, no)
#locating PAM
AM_WITH_PAM
AC_ARG_ENABLE(hipe,
[AC_HELP_STRING([--enable-hipe], [compile natively with HiPE, not recommended (default: no)])],
[case "${enableval}" in
yes) hipe=true ;;
no) hipe=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-hipe) ;;
esac],[hipe=false])
AC_SUBST(hipe)
AC_ARG_ENABLE(roster_gateway_workaround,
[AC_HELP_STRING([--enable-roster-gateway-workaround], [turn on workaround for processing gateway subscriptions (default: no)])],
[case "${enableval}" in
yes) roster_gateway_workaround=true ;;
no) roster_gateway_workaround=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-roster-gateway-workaround) ;;
esac],[roster_gateway_workaround=false])
AC_SUBST(roster_gateway_workaround)
AC_ARG_ENABLE(mssql,
[AC_HELP_STRING([--enable-mssql], [use Microsoft SQL Server database (default: no, requires --enable-odbc)])],
[case "${enableval}" in
yes) db_type=mssql ;;
no) db_type=generic ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-mssql) ;;
esac],[db_type=generic])
AC_SUBST(db_type)
AC_ARG_ENABLE(transient_supervisors,
[AC_HELP_STRING([--enable-transient_supervisors], [use Erlang supervision for transient process (default: yes)])],
[case "${enableval}" in
yes) transient_supervisors=true ;;
no) transient_supervisors=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-transient_supervisors) ;;
esac],[transient_supervisors=true])
AC_SUBST(transient_supervisors)
AC_ARG_ENABLE(full_xml,
[AC_HELP_STRING([--enable-full-xml], [use XML features in XMPP stream (ex: CDATA) (default: no, requires XML compliant clients)])],
[case "${enableval}" in
yes) full_xml=true ;;
no) full_xml=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-full-xml) ;;
esac],[full_xml=false])
AC_SUBST(full_xml)
AC_CONFIG_FILES([Makefile
$make_mod_irc
$make_mod_muc
$make_mod_pubsub
$make_mod_proxy65
$make_eldap
$make_pam
$make_web
stringprep/Makefile
$make_tls])
stun/Makefile
$make_tls
$make_odbc
$make_ejabberd_zlib])
#openssl
AM_WITH_OPENSSL
# If ssl is kerberized it need krb5.h
# On RedHat and OpenBSD, krb5.h is in an unsual place:
KRB5_INCLUDE="`krb5-config --cflags 2>/dev/null`"
if test -n "$KRB5_INCLUDE" ; then
CPPFLAGS="$CPPFLAGS $KRB5_INCLUDE"
else
# For RedHat For BSD
for D in /usr/kerberos/include /usr/include/kerberos /usr/include/kerberosV
do
if test -d $D ; then
CPPFLAGS="$CPPFLAGS -I$D"
fi
done
fi
AC_CHECK_HEADER(krb5.h,,)
ENABLEUSER=""
AC_ARG_ENABLE(user,
[AS_HELP_STRING([--enable-user[[[[=USER]]]]], [allow this system user to start ejabberd (default: no)])],
[case "${enableval}" in
yes) ENABLEUSER=`whoami` ;;
no) ENABLEUSER="" ;;
*) ENABLEUSER=$enableval
esac],
[])
if test "$ENABLEUSER" != ""; then
echo "allow this system user to start ejabberd: $ENABLEUSER"
AC_SUBST([INSTALLUSER], [$ENABLEUSER])
fi
AC_CHECK_HEADER(openssl/md2.h, md2=true, md2=false)
AC_SUBST(md2)
AC_CANONICAL_SYSTEM
#AC_DEFINE_UNQUOTED(CPU_VENDOR_OS, "$target")
#AC_SUBST(target_os)
case "$target_os" in
*darwin10*)
echo "Target OS is 'Darwin10'"
AC_LANG(Erlang)
AC_RUN_IFELSE(
[AC_LANG_PROGRAM([],[dnl
halt(case erlang:system_info(wordsize) of
8 -> 0; 4 -> 1 end)])],
[AC_MSG_NOTICE(found 64-bit Erlang)
CBIT=-m64],
[AC_MSG_NOTICE(found 32-bit Erlang)
CBIT=-m32])
;;
*)
echo "Target OS is '$target_os'"
CBIT=""
;;
esac
CFLAGS="$CFLAGS $CBIT"
LD_SHARED="$LD_SHARED $CBIT"
echo "CBIT is set to '$CBIT'"
AC_OUTPUT
echo
echo "********************** WARNING ! ************************"
echo "* ejabberd master is NOT ready for real usage yet, *"
echo "* because it is still in heavy development. *"
echo "* Don't use ejabberd master, it is still alpha code! *"
echo "* Please use ejabberd 2.1.x branch instead. *"
echo "*********************************************************"
echo
+40 -27
View File
@@ -1,14 +1,31 @@
%%%----------------------------------------------------------------------
%%% File : configure.erl
%%% Author : Alexey Shchepin <alexey@sevcom.net>
%%% Purpose :
%%% Created : 27 Jan 2003 by Alexey Shchepin <alexey@sevcom.net>
%%% Id : $Id$
%%% Author : Alexey Shchepin <alexey@process-one.net>
%%% Purpose :
%%% Created : 27 Jan 2003 by Alexey Shchepin <alexey@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(configure).
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
-author('alexey@process-one.net').
-export([start/0]).
@@ -25,38 +42,34 @@ start() ->
end,
case Static of
true ->
ExpatLib = "EXPAT_LIB = $(EXPAT_DIR)\\StaticLibs\\libexpatMT.lib\n",
ExpatFlag = "EXPAT_FLAG = -DXML_STATIC\n",
IconvDir = "ICONV_DIR = c:\\progra~1\\libiconv-1.9.1-static\n",
IconvLib = "ICONV_LIB = $(ICONV_DIR)\\lib\\iconv.lib\n";
ZlibDir = "ZLIB_DIR = c:\\sdk\\GnuWin32\n",
ZlibLib = "ZLIB_LIB = $(ZLIB_DIR)\\lib\\zlib.lib\n";
false ->
ExpatLib = "EXPAT_LIB = $(EXPAT_DIR)\\Libs\\libexpat.lib\n",
ExpatFlag = "",
IconvDir = "ICONV_DIR = c:\\progra~1\\libiconv-1.9.1\n",
IconvLib = "ICONV_LIB = $(ICONV_DIR)\\lib\\iconv.lib\n"
ZlibDir = "ZLIB_DIR = c:\\sdk\\GnuWin32\n",
ZlibLib = "ZLIB_LIB = $(ZLIB_DIR)\\lib\\zlib.lib\n"
end,
EIDirS = "EI_DIR = " ++ code:lib_dir("erl_interface") ++ "\n",
EVersion = "ERLANG_VERSION = " ++ erlang:system_info(version) ++ "\n",
EIDirS = "EI_DIR = " ++ code:lib_dir(erl_interface) ++ "\n",
RootDirS = "ERLANG_DIR = " ++ code:root_dir() ++ "\n",
%% Load the ejabberd application description so that ?VERSION can read the vsn key
application:load(ejabberd),
Version = "EJABBERD_VERSION = " ++ ?VERSION ++ "\n",
ExpatDir = "EXPAT_DIR = c:\\progra~1\\expat-1.95.7\n",
OpenSSLDir = "OPENSSL_DIR = c:\\progra~1\\OpenSSL\n",
OpenSSLDir = "OPENSSL_DIR = c:\\sdk\\OpenSSL\n",
DBType = "DBTYPE = generic\n", %% 'generic' or 'mssql'
SSLDir = "SSLDIR = " ++ code:lib_dir("ssl") ++ "\n",
StdLibDir = "STDLIBDIR = " ++ code:lib_dir("stdlib") ++ "\n",
SSLDir = "SSLDIR = " ++ code:lib_dir(ssl) ++ "\n",
StdLibDir = "STDLIBDIR = " ++ code:lib_dir(stdlib) ++ "\n",
file:write_file("Makefile.inc",
list_to_binary(EIDirS ++
list_to_binary(EVersion ++
EIDirS ++
RootDirS ++
Version ++
SSLDir ++
StdLibDir ++
OpenSSLDir ++
ExpatDir ++
ExpatLib ++
ExpatFlag ++
IconvDir ++
IconvLib)),
DBType ++
ZlibDir ++
ZlibLib)),
halt().
+220 -66
View File
@@ -1,107 +1,245 @@
%%%----------------------------------------------------------------------
%%% File : cyrsasl.erl
%%% Author : Alexey Shchepin <alexey@sevcom.net>
%%% Author : Alexey Shchepin <alexey@process-one.net>
%%% Purpose : Cyrus SASL-like library
%%% Created : 8 Mar 2003 by Alexey Shchepin <alexey@sevcom.net>
%%% Id : $Id$
%%% Created : 8 Mar 2003 by Alexey Shchepin <alexey@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(cyrsasl).
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
-author('alexey@process-one.net').
-export([start/0,
register_mechanism/2,
listmech/0,
server_new/6,
register_mechanism/3,
listmech/1,
server_new/8,
server_start/3,
server_step/2]).
-record(sasl_mechanism, {mechanism, module}).
-record(sasl_state, {service, myname, realm,
get_password, check_password,
mech_mod, mech_state}).
-include("cyrsasl.hrl").
-include("ejabberd.hrl").
%% @type saslmechanism() = {sasl_mechanism, Mechanism, Module, Require_Plain}
%% Mechanism = string()
%% Module = atom()
%% Require_Plain = bool().
%% Registry entry of a supported SASL mechanism.
-record(sasl_mechanism, {mechanism, module, require_plain_password}).
%% @type saslstate() = {sasl_state, Service, Myname, Realm, GetPassword, CheckPassword, CheckPasswordDigest, Mech_Mod, Mech_State}
%% Service = string()
%% Myname = string()
%% Realm = string()
%% GetPassword = function()
%% CheckPassword = function()
%% CheckPasswordDigest = any()
%% Mech_Mod = atom()
%% Mech_State = term().
%% State of this process.
-record(sasl_state, {service, myname,
mech_mod, mech_state, params}).
-export([behaviour_info/1]).
%% @hidden
behaviour_info(callbacks) ->
[{mech_new, 2},
{mech_step, 2}];
behaviour_info(Other) ->
[{mech_new, 1}, {mech_step, 2}];
behaviour_info(_Other) ->
undefined.
%% @spec () -> ok
start() ->
ets:new(sasl_mechanism, [named_table,
public,
{keypos, #sasl_mechanism.mechanism}]),
cyrsasl_plain:start([]),
cyrsasl_digest:start([]),
cyrsasl_anonymous:start([]),
maybe_try_start_gssapi(),
ok.
register_mechanism(Mechanism, Module) ->
ets:insert(sasl_mechanism, #sasl_mechanism{mechanism = Mechanism,
module = Module}).
maybe_try_start_gssapi() ->
case os:getenv("KRB5_KTNAME") of
false ->
ok;
_String ->
try_start_gssapi()
end.
% TODO: use callbacks
-include("ejabberd.hrl").
-include("jlib.hrl").
check_authzid(State, Props) ->
AuthzId = xml:get_attr_s(authzid, Props),
case jlib:string_to_jid(AuthzId) of
error ->
{error, "invalid-authzid"};
JID ->
LUser = jlib:nodeprep(xml:get_attr_s(username, Props)),
{U, S, R} = jlib:jid_tolower(JID),
case R of
"" ->
{error, "invalid-authzid"};
_ ->
case {LUser, ?MYNAME} of
{U, S} ->
ok;
_ ->
{error, "invalid-authzid"}
end
try_start_gssapi() ->
case code:load_file(esasl) of
{module, _Module} ->
cyrsasl_gssapi:start([]);
{error, What} ->
?ERROR_MSG("Support for GSSAPI not started because esasl.beam was not found: ~p", [What])
end.
%% @spec (Mechanism, Module, Require_Plain) -> true
%% Mechanism = string()
%% Module = atom()
%% Require_Plain = bool()
register_mechanism(Mechanism, Module, RequirePlainPassword) ->
ets:insert(sasl_mechanism,
#sasl_mechanism{mechanism = Mechanism,
module = Module,
require_plain_password = RequirePlainPassword}).
% TODO use callbacks
%-include("ejabberd.hrl").
%-include("jlib.hrl").
%check_authzid(_State, Props) ->
% AuthzId = xml:get_attr_s(authzid, Props),
% case jlib:string_to_jid(AuthzId) of
% error ->
% {error, "invalid-authzid"};
% JID ->
% LUser = jlib:nodeprep(xml:get_attr_s(username, Props)),
% {U, S, R} = jlib:short_prepd_jid(JID),
% case R of
% "" ->
% {error, "invalid-authzid"};
% _ ->
% case {LUser, ?MYNAME} of
% {U, S} ->
% ok;
% _ ->
% {error, "invalid-authzid"}
% end
% end
% end.
%% @spec (State, Props) -> ok | {error, 'not-authorized'}
%% State = saslstate()
%% Props = [{Key, Value}]
%% Key = atom()
%% Value = string()
check_credentials(_State, Props) ->
case proplists:get_value(username, Props) of
undefined ->
{error, 'not-authorized'};
User ->
case exmpp_stringprep:is_node(User) of
false -> {error, 'not-authorized'};
true -> ok
end
end.
check_credentials(State, Props) ->
User = xml:get_attr_s(username, Props),
case jlib:nodeprep(User) of
error ->
{error, "not-authorized"};
"" ->
{error, "not-authorized"};
LUser ->
ok
end.
%% @spec (Host) -> [Mechanism]
%% Host = string()
%% Mechanism = string()
listmech() ->
ets:select(sasl_mechanism,
[{#sasl_mechanism{mechanism = '$1', _ = '_'}, [], ['$1']}]).
listmech(Host) ->
RequirePlainPassword = ejabberd_auth:plain_password_required(Host),
Mechs = ets:select(sasl_mechanism,
[{#sasl_mechanism{mechanism = '$1',
require_plain_password = '$2',
_ = '_'},
if
RequirePlainPassword ->
[{'==', '$2', false}];
true ->
[]
end,
['$1']}]),
filter_anonymous(Host, Mechs).
%% @spec (Service, ServerFQDN, UserRealm, SecFlags, GetPassword, CheckPassword, CheckPasswordDigest, Socket) -> saslstate()
%% Service = string()
%% ServerFQDN = string()
%% UserRealm = string()
%% SecFlags = [term()]
%% GetPassword = function()
%% CheckPassword = function()
server_new(Service, ServerFQDN, UserRealm, _SecFlags,
GetPassword, CheckPassword, CheckPasswordDigest, Socket) ->
Params = #sasl_params{
host = ServerFQDN,
realm = UserRealm,
get_password = GetPassword,
check_password = CheckPassword,
check_password_digest= CheckPasswordDigest,
socket = Socket
},
server_new(Service, ServerFQDN, UserRealm, SecFlags,
GetPassword, CheckPassword) ->
#sasl_state{service = Service,
myname = ServerFQDN,
realm = UserRealm,
get_password = GetPassword,
check_password = CheckPassword}.
params = Params}.
%% @spec (State, Mech, ClientIn) -> Ok | Continue | Error
%% State = saslstate()
%% Mech = string()
%% ClientIn = string()
%% Ok = {ok, Props}
%% Props = [Prop]
%% Prop = [{Key, Value}]
%% Key = atom()
%% Value = string()
%% Continue = {continue, ServerOut, New_State}
%% ServerOut = string()
%% New_State = saslstate()
%% Error = {error, Reason} | {error, Username, Reason}
%% Reason = term()
%% Username = string()
server_start(State, Mech, ClientIn) ->
case ets:lookup(sasl_mechanism, Mech) of
[#sasl_mechanism{module = Module}] ->
{ok, MechState} = Module:mech_new(State#sasl_state.get_password,
State#sasl_state.check_password),
server_step(State#sasl_state{mech_mod = Module,
mech_state = MechState},
ClientIn);
_ ->
{error, "no-mechanism"}
case lists:member(Mech, listmech(State#sasl_state.myname)) of
true ->
case ets:lookup(sasl_mechanism, Mech) of
[#sasl_mechanism{module = Module}] ->
{ok, MechState} =
Module:mech_new(State#sasl_state.params),
server_step(State#sasl_state{mech_mod = Module,
mech_state = MechState},
ClientIn);
_ ->
{error, 'invalid-mechanism'}
end;
false ->
{error, 'invalid-mechanism'}
end.
%% @spec (State, ClientIn) -> Ok | Continue | Error
%% State = saslstate()
%% ClientIn = string()
%% Ok = {ok, Props}
%% Props = [Prop]
%% Prop = [{Key, Value}]
%% Key = atom()
%% Value = string()
%% Continue = {continue, ServerOut, New_State}
%% ServerOut = string()
%% New_State = saslstate()
%% Error = {error, Reason} | {error, Username, Reason}
%% Reason = term()
%% Username = string()
server_step(State, ClientIn) ->
Module = State#sasl_state.mech_mod,
MechState = State#sasl_state.mech_state,
@@ -116,7 +254,23 @@ server_step(State, ClientIn) ->
{continue, ServerOut, NewMechState} ->
{continue, ServerOut,
State#sasl_state{mech_state = NewMechState}};
{error, Error, Username} ->
{error, Error, Username};
{error, Error} ->
{error, Error}
end.
%% @spec (Host, Mechs) -> [Filtered_Mechs]
%% Host = string()
%% Mechs = [Mech]
%% Mech = string()
%% Filtered_Mechs = [Mech]
%%
%% @doc Remove the anonymous mechanism from the list if not enabled for
%% the given host.
filter_anonymous(Host, Mechs) ->
case ejabberd_auth_anonymous:is_sasl_anonymous_enabled(Host) of
true -> Mechs;
false -> Mechs -- ["ANONYMOUS"]
end.
+15
View File
@@ -0,0 +1,15 @@
%% @type saslparams() = {sasl_params, Host, Realm, GetPassword, CheckPassword, CheckPasswordDigest}
%% Host = string()
%% Realm = string()
%% GetPassword = function()
%% CheckPassword = function()
%% CheckPasswordDigest = any().
%% Parameters for SASL.
-record(sasl_params, {
host,
realm,
get_password,
check_password,
check_password_digest,
socket}).
+76
View File
@@ -0,0 +1,76 @@
%%%----------------------------------------------------------------------
%%% File : cyrsasl_anonymous.erl
%%% Author : Magnus Henoch <henoch@dtek.chalmers.se>
%%% Purpose : ANONYMOUS SASL mechanism
%%% See http://www.ietf.org/internet-drafts/draft-ietf-sasl-anon-05.txt
%%% Created : 23 Aug 2005 by Magnus Henoch <henoch@dtek.chalmers.se>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(cyrsasl_anonymous).
-export([start/1, stop/0, mech_new/1, mech_step/2]).
-include("cyrsasl.hrl").
-behaviour(cyrsasl).
%% @type mechstate() = {state, Server}
%% Server = string().
-record(state, {server}).
%% @spec (Opts) -> true
%% Opts = term()
start(_Opts) ->
cyrsasl:register_mechanism("ANONYMOUS", ?MODULE, false),
ok.
%% @spec () -> ok
stop() ->
ok.
mech_new(#sasl_params{host=Host}) ->
{ok, #state{server = Host}}.
%% @spec (State, ClientIn) -> Ok | Error
%% State = mechstate()
%% ClientIn = string()
%% Ok = {ok, Props}
%% Props = [Prop]
%% Prop = {username, Username} | {auth_module, AuthModule}
%% Username = string()
%% AuthModule = ejabberd_auth_anonymous
%% Error = {error, 'not-authorized'}
mech_step(State, _ClientIn) ->
%% We generate a random username:
User = lists:concat([randoms:get_string() | tuple_to_list(now())]),
Server = State#state.server,
%% Checks that the username is available
case ejabberd_auth:is_user_exists(User, Server) of
true -> {error, 'not-authorized'};
false -> {ok, [{username, User},
{auth_module, ejabberd_auth_anonymous}]}
end.
+244 -45
View File
@@ -3,38 +3,85 @@
%%% Author : Alexey Shchepin <alexey@sevcom.net>
%%% Purpose : DIGEST-MD5 SASL mechanism
%%% Created : 11 Mar 2003 by Alexey Shchepin <alexey@sevcom.net>
%%% Id : $Id$
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(cyrsasl_digest).
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
-export([start/1,
stop/0,
mech_new/2,
mech_new/1,
mech_step/2]).
-include("ejabberd.hrl").
-include("cyrsasl.hrl").
-behaviour(cyrsasl).
-record(state, {step, nonce, username, authzid, get_password}).
%% @type mechstate() = {state, Step, Nonce, Username, AuthzId, GetPassword, CheckPassword, AuthModule, Host}
%% Step = 1 | 3 | 5
%% Nonce = string()
%% Username = string()
%% AuthzId = string()
%% GetPassword = function()
%% AuthModule = atom()
%% Host = string().
-record(state, {step, nonce, username, authzid, get_password, check_password, auth_module,
host}).
%% @spec (Opts) -> true
%% Opts = term()
start(_Opts) ->
case ejabberd_auth:plain_password_required() of
true ->
ok;
false ->
cyrsasl:register_mechanism("DIGEST-MD5", ?MODULE),
ok
end.
cyrsasl:register_mechanism("DIGEST-MD5", ?MODULE, true).
%% @spec () -> ok
stop() ->
ok.
mech_new(GetPassword, _CheckPassword) ->
mech_new(#sasl_params{host=Host, get_password=GetPassword,
check_password_digest=CheckPasswordDigest}) ->
{ok, #state{step = 1,
nonce = randoms:get_string(),
get_password = GetPassword}}.
host = Host,
get_password = GetPassword,
check_password = CheckPasswordDigest}}.
%% @spec (State, ClientIn) -> Ok | Continue | Error
%% State = mechstate()
%% ClientIn = string()
%% Ok = {ok, Props}
%% Props = [Prop]
%% Prop = {username, Username} | {authzid, AuthzId} | {auth_module, AuthModule}
%% Username = string()
%% AuthzId = string()
%% AuthModule = atom()
%% Continue = {continue, ServerOut, New_State}
%% ServerOut = string()
%% New_State = mechstate()
%% Error = {error, Reason} | {error, Reason, Username}
%% Reason = term()
mech_step(#state{step = 1, nonce = Nonce} = State, _) ->
{continue,
@@ -44,45 +91,69 @@ mech_step(#state{step = 1, nonce = Nonce} = State, _) ->
mech_step(#state{step = 3, nonce = Nonce} = State, ClientIn) ->
case parse(ClientIn) of
bad ->
{error, "bad-protocol"};
{error, 'bad-protocol'};
KeyVals ->
UserName = xml:get_attr_s("username", KeyVals),
AuthzId = xml:get_attr_s("authzid", KeyVals),
case (State#state.get_password)(UserName) of
DigestURI = proplists:get_value("digest-uri", KeyVals, ""),
UserName = proplists:get_value("username", KeyVals, ""),
case is_digesturi_valid(DigestURI, State#state.host) of
false ->
{error, "not-authorized"};
Passwd ->
Response = response(KeyVals, UserName, Passwd,
Nonce, AuthzId, "AUTHENTICATE"),
case xml:get_attr_s("response", KeyVals) of
Response ->
RspAuth = response(KeyVals,
UserName, Passwd,
Nonce, AuthzId, ""),
{continue,
"rspauth=" ++ RspAuth,
State#state{step = 5,
username = UserName,
authzid = AuthzId}};
_ ->
{error, "not-authorized"}
?DEBUG("User login not authorized because digest-uri "
"seems invalid: ~p", [DigestURI]),
{error, 'not-authorized', UserName};
true ->
AuthzId = proplists:get_value("authzid", KeyVals, ""),
case (State#state.get_password)(UserName) of
{false, _} ->
{error, 'not-authorized', UserName};
{Passwd, AuthModule} ->
case (State#state.check_password)(UserName, "",
proplists:get_value("response", KeyVals, ""),
fun(PW) -> response(KeyVals, UserName, PW, Nonce, AuthzId,
"AUTHENTICATE") end) of
{true, _} ->
RspAuth = response(KeyVals,
UserName, Passwd,
Nonce, AuthzId, ""),
{continue,
"rspauth=" ++ RspAuth,
State#state{step = 5,
auth_module = AuthModule,
username = UserName,
authzid = AuthzId}};
false ->
{error, 'not-authorized', UserName};
{false, _} ->
{error, 'not-authorized', UserName}
end
end
end
end;
mech_step(#state{step = 5,
auth_module = AuthModule,
username = UserName,
authzid = AuthzId}, "") ->
{ok, [{username, UserName}, {authzid, AuthzId}]};
{ok, [{username, UserName}, {authzid, AuthzId},
{auth_module, AuthModule}]};
mech_step(A, B) ->
io:format("SASL DIGEST: A ~p B ~p", [A,B]),
{error, "bad-protocol"}.
?DEBUG("SASL DIGEST: A ~p B ~p", [A,B]),
{error, 'bad-protocol'}.
%% @spec (S) -> [{Key, Value}] | bad
%% S = string()
%% Key = string()
%% Value = string()
parse(S) ->
parse1(S, "", []).
%% @hidden
parse1([$= | Cs], S, Ts) ->
parse2(Cs, lists:reverse(S), "", Ts);
parse1([$, | Cs], [], Ts) ->
parse1(Cs, [], Ts);
parse1([$\s | Cs], [], Ts) ->
parse1(Cs, [], Ts);
parse1([C | Cs], S, Ts) ->
parse1(Cs, [C | S], Ts);
parse1([], [], T) ->
@@ -90,40 +161,78 @@ parse1([], [], T) ->
parse1([], _S, _T) ->
bad.
parse2([$" | Cs], Key, Val, Ts) ->
%% @hidden
parse2([$\" | Cs], Key, Val, Ts) ->
parse3(Cs, Key, Val, Ts);
parse2([C | Cs], Key, Val, Ts) ->
parse4(Cs, Key, [C | Val], Ts);
parse2([], _, _, _) ->
bad.
parse3([$" | Cs], Key, Val, Ts) ->
%% @hidden
parse3([$\" | Cs], Key, Val, Ts) ->
parse4(Cs, Key, Val, Ts);
parse3([$\\, C | Cs], Key, Val, Ts) ->
parse3(Cs, Key, [C | Val], Ts);
parse3([C | Cs], Key, Val, Ts) ->
parse3(Cs, Key, [C | Val], Ts);
parse3([], _, _, _) ->
bad.
%% @hidden
parse4([$, | Cs], Key, Val, Ts) ->
parse1(Cs, "", [{Key, lists:reverse(Val)} | Ts]);
parse4([$\s | Cs], Key, Val, Ts) ->
parse4(Cs, Key, Val, Ts);
parse4([C | Cs], Key, Val, Ts) ->
parse4(Cs, Key, [C | Val], Ts);
parse4([], Key, Val, Ts) ->
parse1([], "", [{Key, lists:reverse(Val)} | Ts]).
%% @spec (DigestURICase, JabberHost) -> bool()
%% DigestURICase = string()
%% JabberHost = string()
%%
%% @doc Check if the digest-uri is valid.
%% RFC-2831 allows to provide the IP address in Host,
%% however ejabberd doesn't allow that.
%% If the service (for example jabber.example.org)
%% is provided by several hosts (being one of them server3.example.org),
%% then digest-uri can be like xmpp/server3.example.org/jabber.example.org
%% In that case, ejabberd only checks the service name, not the host.
is_digesturi_valid(DigestURICase, JabberHost) ->
DigestURI = exmpp_stringprep:to_lower(DigestURICase),
case catch string:tokens(DigestURI, "/") of
["xmpp", Host] when Host == JabberHost ->
true;
["xmpp", _Host, ServName] when ServName == JabberHost ->
true;
_ ->
false
end.
%% @hidden
digit_to_xchar(D) when (D >= 0) and (D < 10) ->
D + 48;
digit_to_xchar(D) ->
D + 87.
%% @hidden
hex(S) ->
hex(S, []).
%% @hidden
hex([], Res) ->
lists:reverse(Res);
hex([N | Ns], Res) ->
@@ -131,20 +240,35 @@ hex([N | Ns], Res) ->
digit_to_xchar(N div 16) | Res]).
%% @spec (KeyVals, User, Passwd, Nonce, AuthzId, A2Prefix) -> string()
%% KeyVals = [{Key, Value}]
%% Key = string()
%% Value = string()
%% User = string()
%% Passwd = string()
%% Nonce = string()
%% AuthzId = nil() | string()
%% A2Prefix = string()
response(KeyVals, User, Passwd, Nonce, AuthzId, A2Prefix) ->
Realm = xml:get_attr_s("realm", KeyVals),
CNonce = xml:get_attr_s("cnonce", KeyVals),
DigestURI = xml:get_attr_s("digest-uri", KeyVals),
NC = xml:get_attr_s("nc", KeyVals),
QOP = xml:get_attr_s("qop", KeyVals),
Realm = proplists:get_value("realm", KeyVals, ""),
CNonce = proplists:get_value("cnonce", KeyVals, ""),
DigestURI = proplists:get_value("digest-uri", KeyVals, ""),
NC = proplists:get_value("nc", KeyVals, ""),
QOP = proplists:get_value("qop", KeyVals, ""),
%% handle non-fully latin-1 strings as specified
%% on RFC 2831 Section 2.1.2.1 (EJAB-476)
SUser = sanitize(User),
SPasswd = sanitize(Passwd),
SRealm = sanitize(Realm),
A1 = case AuthzId of
"" ->
binary_to_list(
crypto:md5(User ++ ":" ++ Realm ++ ":" ++ Passwd)) ++
crypto:md5(SUser ++ ":" ++ SRealm ++ ":" ++ SPasswd)) ++
":" ++ Nonce ++ ":" ++ CNonce;
_ ->
binary_to_list(
crypto:md5(User ++ ":" ++ Realm ++ ":" ++ Passwd)) ++
crypto:md5(SUser ++ ":" ++ SRealm ++ ":" ++ SPasswd)) ++
":" ++ Nonce ++ ":" ++ CNonce ++ ":" ++ AuthzId
end,
A2 = case QOP of
@@ -160,4 +284,79 @@ response(KeyVals, User, Passwd, Nonce, AuthzId, A2Prefix) ->
hex(binary_to_list(crypto:md5(T))).
sanitize(V) ->
L = from_utf8(V),
case lists:all(fun is_latin1/1, L) of
true -> L;
false -> V
end.
%%%% copied from xmerl_ucs:from_utf8/1 and xmerl_ucs:is_latin1/1 , to not
%%%% require xmerl as a dependency only for this.
from_utf8(Bin) when is_binary(Bin) -> from_utf8(binary_to_list(Bin));
from_utf8(List) ->
case expand_utf8(List) of
{Result,0} -> Result;
{_Res,_NumBadChar} ->
exit({ucs,{bad_utf8_character_code}})
end.
%% expand_utf8([Byte]) -> {[UnicodeChar],NumberOfBadBytes}
%% Expand UTF8 byte sequences to ISO 10646/Unicode
%% charactes. Any illegal bytes are removed and the number of
%% bad bytes are returned.
%%
%% Reference:
%% RFC 3629: "UTF-8, a transformation format of ISO 10646".
expand_utf8(Str) ->
expand_utf8_1(Str, [], 0).
expand_utf8_1([C|Cs], Acc, Bad) when C < 16#80 ->
%% Plain Ascii character.
expand_utf8_1(Cs, [C|Acc], Bad);
expand_utf8_1([C1,C2|Cs], Acc, Bad) when C1 band 16#E0 =:= 16#C0,
C2 band 16#C0 =:= 16#80 ->
case ((C1 band 16#1F) bsl 6) bor (C2 band 16#3F) of
C when 16#80 =< C ->
expand_utf8_1(Cs, [C|Acc], Bad);
_ ->
%% Bad range.
expand_utf8_1(Cs, Acc, Bad+1)
end;
expand_utf8_1([C1,C2,C3|Cs], Acc, Bad) when C1 band 16#F0 =:= 16#E0,
C2 band 16#C0 =:= 16#80,
C3 band 16#C0 =:= 16#80 ->
case ((((C1 band 16#0F) bsl 6) bor (C2 band 16#3F)) bsl 6) bor
(C3 band 16#3F) of
C when 16#800 =< C ->
expand_utf8_1(Cs, [C|Acc], Bad);
_ ->
%% Bad range.
expand_utf8_1(Cs, Acc, Bad+1)
end;
expand_utf8_1([C1,C2,C3,C4|Cs], Acc, Bad) when C1 band 16#F8 =:= 16#F0,
C2 band 16#C0 =:= 16#80,
C3 band 16#C0 =:= 16#80,
C4 band 16#C0 =:= 16#80 ->
case ((((((C1 band 16#0F) bsl 6) bor (C2 band 16#3F)) bsl 6) bor
(C3 band 16#3F)) bsl 6) bor (C4 band 16#3F) of
C when 16#10000 =< C ->
expand_utf8_1(Cs, [C|Acc], Bad);
_ ->
%% Bad range.
expand_utf8_1(Cs, Acc, Bad+1)
end;
expand_utf8_1([_|Cs], Acc, Bad) ->
%% Ignore bad character.
expand_utf8_1(Cs, Acc, Bad+1);
expand_utf8_1([], Acc, Bad) -> {lists:reverse(Acc),Bad}.
%%% Test for legitimate Latin-1 code
is_latin1(Ch) when is_integer(Ch), Ch >= 0, Ch =< 255 -> true;
is_latin1(_) -> false.
+164
View File
@@ -0,0 +1,164 @@
%%%----------------------------------------------------------------------
%%% File : cyrsasl_gssapi.erl
%%% Author : Mikael Magnusson <mikma@users.sourceforge.net>
%%% Purpose : GSSAPI SASL mechanism
%%% Created : 1 June 2007 by Mikael Magnusson <mikma@users.sourceforge.net>
%%%----------------------------------------------------------------------
%%%
%%% Copyright (C) 2007-2009 Mikael Magnusson <mikma@users.sourceforge.net>
%%%
%%% Permission is hereby granted, free of charge, to any person
%%% obtaining a copy of this software and associated documentation
%%% files (the "Software"), to deal in the Software without
%%% restriction, including without limitation the rights to use, copy,
%%% modify, merge, publish, distribute, sublicense, and/or sell copies
%%% of the Software, and to permit persons to whom the Software is
%%% furnished to do so, subject to the following conditions:
%%%
%%% The above copyright notice and this permission notice shall be
%%% included in all copies or substantial portions of the Software.
%%%
%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
%%% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
%%% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
%%% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
%%% BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
%%% ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
%%% CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
%%% SOFTWARE.
%%%
%%%
%%% configuration options:
%%% {sasl_realm, "<Kerberos realm>"}.
%%%
%%% environment variables:
%%% KRB5_KTNAME
%%%
-module(cyrsasl_gssapi).
-author('mikma@users.sourceforge.net').
-export([start/1,
stop/0,
mech_new/1,
mech_step/2]).
-include("ejabberd.hrl").
-include("cyrsasl.hrl").
-behaviour(cyrsasl).
-define(SERVER, ?MODULE).
-define(SERVICE, "xmpp").
-record(state, {sasl,
needsmore=true,
step=0,
host,
realm,
authid,
authzid,
authrealm,
error}).
start(_Opts) ->
ChildSpec =
{?SERVER,
{esasl, start_link, [{local, ?SERVER}]},
transient,
1000,
worker,
[esasl]},
case supervisor:start_child(ejabberd_sup, ChildSpec) of
{ok, _Pid} ->
cyrsasl:register_mechanism("GSSAPI", ?MODULE, false);
{error, Error} = E ->
?ERROR_MSG("esasl failed: ~p", [Error]),
E
end.
stop() ->
catch esasl:stop(?SERVER),
supervisor:terminate_child(ejabberd_sup, ?SERVER),
supervisor:delete_child(ejabberd_sup, ?SERVER).
mech_new(#sasl_params{host=Host, realm=Realm, socket=Socket}) ->
case ejabberd_socket:gethostname(Socket) of
{ok, FQDN} ->
?DEBUG("mech_new ~p ~p ~p~n", [Host, Realm, FQDN]),
case esasl:server_start(?SERVER, "GSSAPI", ?SERVICE, FQDN) of
{ok, Sasl} ->
{ok, #state{sasl=Sasl,host=Host,realm=Realm}};
{error, {gsasl_error, Error}} ->
{ok, Str} = esasl:str_error(?SERVER, Error),
?DEBUG("esasl error: ~p", [Str]),
{ok, #state{needsmore=error,error="internal-server-error"}};
{error, Error} ->
?DEBUG("esasl error: ~p", [Error]),
{ok, #state{needsmore=error,error="internal-server-error"}}
end;
{error, Error} ->
?DEBUG("gethostname error: ~p", [Error]),
{ok, #state{needsmore=error,error="internal-server-error"}}
end.
mech_step(State, ClientIn) when is_list(ClientIn) ->
catch do_step(State, ClientIn).
do_step(#state{needsmore=error,error=Error}=_State, _) ->
{error, Error};
do_step(#state{needsmore=false}=State, _) ->
check_user(State);
do_step(#state{needsmore=true,sasl=Sasl,step=Step}=State, ClientIn) ->
?DEBUG("mech_step~n", []),
case esasl:step(Sasl, list_to_binary(ClientIn)) of
{ok, RspAuth} ->
?DEBUG("ok~n", []),
{ok, Display_name} = esasl:property_get(Sasl, gssapi_display_name),
{ok, Authzid} = esasl:property_get(Sasl, authzid),
{Authid, [$@ | Auth_realm]} =
lists:splitwith(fun(E)->E =/= $@ end, Display_name),
State1 = State#state{authid=Authid,
authzid=Authzid,
authrealm=Auth_realm},
handle_step_ok(State1, binary_to_list(RspAuth));
{needsmore, RspAuth} ->
?DEBUG("needsmore~n", []),
if (Step > 0) and (ClientIn =:= []) and (RspAuth =:= <<>>) ->
{error, "not-authorized"};
true ->
{continue, binary_to_list(RspAuth),
State#state{step=Step+1}}
end;
{error, _} ->
{error, "not-authorized"}
end.
handle_step_ok(State, []) ->
check_user(State);
handle_step_ok(#state{step=Step}=State, RspAuth) ->
?DEBUG("continue~n", []),
{continue, RspAuth, State#state{needsmore=false,step=Step+1}}.
check_user(#state{authid=Authid,authzid=Authzid,
authrealm=Auth_realm,host=Host,realm=Realm}) ->
if Realm =/= Auth_realm ->
?DEBUG("bad realm ~p (expected ~p)~n",[Auth_realm, Realm]),
throw({error, "not-authorized"});
true ->
ok
end,
case ejabberd_auth:is_user_exists(Authid, Host) of
false ->
?DEBUG("bad user ~p~n",[Authid]),
throw({error, "not-authorized"});
true ->
ok
end,
?DEBUG("GSSAPI authenticated ~p ~p~n", [Authid, Authzid]),
{ok, [{username, Authid}, {authzid, Authzid}]}.
+85 -14
View File
@@ -1,48 +1,112 @@
%%%----------------------------------------------------------------------
%%% File : cyrsasl_plain.erl
%%% Author : Alexey Shchepin <alexey@sevcom.net>
%%% Author : Alexey Shchepin <alexey@process-one.net>
%%% Purpose : PLAIN SASL mechanism
%%% Created : 8 Mar 2003 by Alexey Shchepin <alexey@sevcom.net>
%%% Id : $Id$
%%% Created : 8 Mar 2003 by Alexey Shchepin <alexey@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(cyrsasl_plain).
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
-author('alexey@process-one.net').
-export([start/1, stop/0, mech_new/2, mech_step/2, parse/1]).
-export([start/1, stop/0, mech_new/1, mech_step/2, parse/1]).
-include("cyrsasl.hrl").
-behaviour(cyrsasl).
%% @type mechstate() = {state, CheckPassword}
%% CheckPassword = function().
-record(state, {check_password}).
%% @spec (Opts) -> true
%% Opts = term()
start(_Opts) ->
cyrsasl:register_mechanism("PLAIN", ?MODULE),
cyrsasl:register_mechanism("PLAIN", ?MODULE, false),
ok.
%% @spec () -> ok
stop() ->
ok.
mech_new(_GetPassword, CheckPassword) ->
mech_new(#sasl_params{check_password = CheckPassword}) ->
{ok, #state{check_password = CheckPassword}}.
%% @spec (State, ClientIn) -> Ok | Error
%% State = mechstate()
%% ClientIn = string()
%% Ok = {ok, Props}
%% Props = [Prop]
%% Prop = {username, Username} | {authzid, AuthzId} | {auth_module, AuthModule}
%% Username = string()
%% AuthzId = string()
%% AuthModule = atom()
%% Error = {error, Reason} | {error, Reason, Username}
%% Reason = term()
mech_step(State, ClientIn) ->
case parse(ClientIn) of
case prepare(ClientIn) of
[AuthzId, User, Password] ->
case (State#state.check_password)(User, Password) of
true ->
{ok, [{username, User}, {authzid, AuthzId}]};
{true, AuthModule} ->
{ok, [{username, User}, {authzid, AuthzId},
{auth_module, AuthModule}]};
{false, ReasonAuthFail} when is_list(ReasonAuthFail) ->
{error, ReasonAuthFail, User};
_ ->
{error, "bad-auth"}
{error, 'not-authorized', User}
end;
_ ->
{error, "bad-protocol"}
{error, 'bad-protocol'}
end.
prepare(ClientIn) ->
case parse(ClientIn) of
[[], UserMaybeDomain, Password] ->
case parse_domain(UserMaybeDomain) of
%% <NUL>login@domain<NUL>pwd
[User, _Domain] ->
[UserMaybeDomain, User, Password];
%% <NUL>login<NUL>pwd
[User] ->
["", User, Password]
end;
%% login@domain<NUL>login<NUL>pwd
[AuthzId, User, Password] ->
[AuthzId, User, Password];
_ ->
error
end.
%% @hidden
parse(S) ->
parse1(S, "", []).
%% @hidden
parse1([0 | Cs], S, T) ->
parse1(Cs, "", [lists:reverse(S) | T]);
parse1([C | Cs], S, T) ->
@@ -53,5 +117,12 @@ parse1([], S, T) ->
lists:reverse([lists:reverse(S) | T]).
parse_domain(S) ->
parse_domain1(S, "", []).
parse_domain1([$@ | Cs], S, T) ->
parse_domain1(Cs, "", [lists:reverse(S) | T]);
parse_domain1([C | Cs], S, T) ->
parse_domain1(Cs, [C | S], T);
parse_domain1([], S, T) ->
lists:reverse([lists:reverse(S) | T]).
+268
View File
@@ -0,0 +1,268 @@
%% Copyright (c) 2007
%% Mats Cronqvist <mats.cronqvist@ericsson.com>
%% Chris Newcombe <chris.newcombe@gmail.com>
%% Jacob Vorreuter <jacob.vorreuter@gmail.com>
%%
%% Permission is hereby granted, free of charge, to any person
%% obtaining a copy of this software and associated documentation
%% files (the "Software"), to deal in the Software without
%% restriction, including without limitation the rights to use,
%% copy, modify, merge, publish, distribute, sublicense, and/or sell
%% copies of the Software, and to permit persons to whom the
%% Software is furnished to do so, subject to the following
%% conditions:
%%
%% The above copyright notice and this permission notice shall be
%% included in all copies or substantial portions of the Software.
%%
%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
%% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
%% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
%% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
%% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
%% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
%% OTHER DEALINGS IN THE SOFTWARE.
%%%-------------------------------------------------------------------
%%% File : dynamic_compile.erl
%%% Description :
%%% Authors : Mats Cronqvist <mats.cronqvist@ericsson.com>
%%% Chris Newcombe <chris.newcombe@gmail.com>
%%% Jacob Vorreuter <jacob.vorreuter@gmail.com>
%%% TODO :
%%% - add support for limit include-file depth (and prevent circular references)
%%% prevent circular macro expansion set FILE correctly when -module() is found
%%% -include_lib support $ENVVAR in include filenames
%%% substitute-stringize (??MACRO)
%%% -undef/-ifdef/-ifndef/-else/-endif
%%% -file(File, Line)
%%%-------------------------------------------------------------------
-module(dynamic_compile).
%% API
-export([from_string/1, from_string/2]).
-import(lists, [reverse/1, keyreplace/4]).
%%====================================================================
%% API
%%====================================================================
%%--------------------------------------------------------------------
%% Function:
%% Description:
%% Returns a binary that can be used with
%% code:load_binary(Module, ModuleFilenameForInternalRecords, Binary).
%%--------------------------------------------------------------------
from_string(CodeStr) ->
from_string(CodeStr, []).
% takes Options as for compile:forms/2
from_string(CodeStr, CompileFormsOptions) ->
%% Initialise the macro dictionary with the default predefined macros,
%% (adapted from epp.erl:predef_macros/1
Filename = "compiled_from_string",
%%Machine = list_to_atom(erlang:system_info(machine)),
Ms0 = dict:new(),
% Ms1 = dict:store('FILE', {[], "compiled_from_string"}, Ms0),
% Ms2 = dict:store('LINE', {[], 1}, Ms1), % actually we might add special code for this
% Ms3 = dict:store('MODULE', {[], undefined}, Ms2),
% Ms4 = dict:store('MODULE_STRING', {[], undefined}, Ms3),
% Ms5 = dict:store('MACHINE', {[], Machine}, Ms4),
% InitMD = dict:store(Machine, {[], true}, Ms5),
InitMD = Ms0,
%% From the docs for compile:forms:
%% When encountering an -include or -include_dir directive, the compiler searches for header files in the following directories:
%% 1. ".", the current working directory of the file server;
%% 2. the base name of the compiled file;
%% 3. the directories specified using the i option. The directory specified last is searched first.
%% In this case, #2 is meaningless.
IncludeSearchPath = ["." | reverse([Dir || {i, Dir} <- CompileFormsOptions])],
{RevForms, _OutMacroDict} = scan_and_parse(CodeStr, Filename, 1, [], InitMD, IncludeSearchPath),
Forms = reverse(RevForms),
%% note: 'binary' is forced as an implicit option, whether it is provided or not.
case compile:forms(Forms, CompileFormsOptions) of
{ok, ModuleName, CompiledCodeBinary} when is_binary(CompiledCodeBinary) ->
{ModuleName, CompiledCodeBinary};
{ok, ModuleName, CompiledCodeBinary, []} when is_binary(CompiledCodeBinary) -> % empty warnings list
{ModuleName, CompiledCodeBinary};
{ok, _ModuleName, _CompiledCodeBinary, Warnings} ->
throw({?MODULE, warnings, Warnings});
Other ->
throw({?MODULE, compile_forms, Other})
end.
%%====================================================================
%% Internal functions
%%====================================================================
%%% Code from Mats Cronqvist
%%% See http://www.erlang.org/pipermail/erlang-questions/2007-March/025507.html
%%%## 'scan_and_parse'
%%%
%%% basically we call the OTP scanner and parser (erl_scan and
%%% erl_parse) line-by-line, but check each scanned line for (or
%%% definitions of) macros before parsing.
%% returns {ReverseForms, FinalMacroDict}
scan_and_parse([], _CurrFilename, _CurrLine, RevForms, MacroDict, _IncludeSearchPath) ->
{RevForms, MacroDict};
scan_and_parse(RemainingText, CurrFilename, CurrLine, RevForms, MacroDict, IncludeSearchPath) ->
case scanner(RemainingText, CurrLine, MacroDict) of
{tokens, NLine, NRemainingText, Toks} ->
{ok, Form} = erl_parse:parse_form(Toks),
scan_and_parse(NRemainingText, CurrFilename, NLine, [Form | RevForms], MacroDict, IncludeSearchPath);
{macro, NLine, NRemainingText, NMacroDict} ->
scan_and_parse(NRemainingText, CurrFilename, NLine, RevForms,NMacroDict, IncludeSearchPath);
{include, NLine, NRemainingText, IncludeFilename} ->
IncludeFileRemainingTextents = read_include_file(IncludeFilename, IncludeSearchPath),
%%io:format("include file ~p contents: ~n~p~nRemainingText = ~p~n", [IncludeFilename,IncludeFileRemainingTextents, RemainingText]),
%% Modify the FILE macro to reflect the filename
%%IncludeMacroDict = dict:store('FILE', {[],IncludeFilename}, MacroDict),
IncludeMacroDict = MacroDict,
%% Process the header file (inc. any nested header files)
{RevIncludeForms, IncludedMacroDict} = scan_and_parse(IncludeFileRemainingTextents, IncludeFilename, 1, [], IncludeMacroDict, IncludeSearchPath),
%io:format("include file results = ~p~n", [R]),
%% Restore the FILE macro in the NEW MacroDict (so we keep any macros defined in the header file)
%%NMacroDict = dict:store('FILE', {[],CurrFilename}, IncludedMacroDict),
NMacroDict = IncludedMacroDict,
%% Continue with the original file
scan_and_parse(NRemainingText, CurrFilename, NLine, RevIncludeForms ++ RevForms, NMacroDict, IncludeSearchPath);
done ->
scan_and_parse([], CurrFilename, CurrLine, RevForms, MacroDict, IncludeSearchPath)
end.
scanner(Text, Line, MacroDict) ->
case erl_scan:tokens([],Text,Line) of
{done, {ok,Toks,NLine}, LeftOverChars} ->
case pre_proc(Toks, MacroDict) of
{tokens, NToks} -> {tokens, NLine, LeftOverChars, NToks};
{macro, NMacroDict} -> {macro, NLine, LeftOverChars, NMacroDict};
{include, Filename} -> {include, NLine, LeftOverChars, Filename}
end;
{more, _Continuation} ->
%% This is supposed to mean "term is not yet complete" (i.e. a '.' has
%% not been reached yet).
%% However, for some bizarre reason we also get this if there is a comment after the final '.' in a file.
%% So we check to see if Text only consists of comments.
case is_only_comments(Text) of
true ->
done;
false ->
throw({incomplete_term, Text, Line})
end
end.
is_only_comments(Text) -> is_only_comments(Text, not_in_comment).
is_only_comments([], _) -> true;
is_only_comments([$ |T], not_in_comment) -> is_only_comments(T, not_in_comment); % skipping whitspace outside of comment
is_only_comments([$\t |T], not_in_comment) -> is_only_comments(T, not_in_comment); % skipping whitspace outside of comment
is_only_comments([$\n |T], not_in_comment) -> is_only_comments(T, not_in_comment); % skipping whitspace outside of comment
is_only_comments([$% |T], not_in_comment) -> is_only_comments(T, in_comment); % found start of a comment
is_only_comments(_, not_in_comment) -> false;
% found any significant char NOT in a comment
is_only_comments([$\n |T], in_comment) -> is_only_comments(T, not_in_comment); % found end of a comment
is_only_comments([_ |T], in_comment) -> is_only_comments(T, in_comment). % skipping over in-comment chars
%%%## 'pre-proc'
%%%
%%% have to implement a subset of the pre-processor, since epp insists
%%% on running on a file.
%%% only handles 2 cases;
%% -define(MACRO, something).
%% -define(MACRO(VAR1,VARN),{stuff,VAR1,more,stuff,VARN,extra,stuff}).
pre_proc([{'-',_},{atom,_,define},{'(',_},{_,_,Name}|DefToks],MacroDict) ->
false = dict:is_key(Name, MacroDict),
case DefToks of
[{',',_} | Macro] ->
{macro, dict:store(Name, {[], macro_body_def(Macro, [])}, MacroDict)};
[{'(',_} | Macro] ->
{macro, dict:store(Name, macro_params_body_def(Macro, []), MacroDict)}
end;
pre_proc([{'-',_}, {atom,_,include}, {'(',_}, {string,_,Filename}, {')',_}, {dot,_}], _MacroDict) ->
{include, Filename};
pre_proc(Toks,MacroDict) ->
{tokens, subst_macros(Toks, MacroDict)}.
macro_params_body_def([{')',_},{',',_} | Toks], RevParams) ->
{reverse(RevParams), macro_body_def(Toks, [])};
macro_params_body_def([{var,_,Param} | Toks], RevParams) ->
macro_params_body_def(Toks, [Param | RevParams]);
macro_params_body_def([{',',_}, {var,_,Param} | Toks], RevParams) ->
macro_params_body_def(Toks, [Param | RevParams]).
macro_body_def([{')',_}, {dot,_}], RevMacroBodyToks) ->
reverse(RevMacroBodyToks);
macro_body_def([Tok|Toks], RevMacroBodyToks) ->
macro_body_def(Toks, [Tok | RevMacroBodyToks]).
subst_macros(Toks, MacroDict) ->
reverse(subst_macros_rev(Toks, MacroDict, [])).
%% returns a reversed list of tokes
subst_macros_rev([{'?',_}, {_,LineNum,'LINE'} | Toks], MacroDict, RevOutToks) ->
%% special-case for ?LINE, to avoid creating a new MacroDict for every line in the source file
subst_macros_rev(Toks, MacroDict, [{integer,LineNum,LineNum}] ++ RevOutToks);
subst_macros_rev([{'?',_}, {_,_,Name}, {'(',_} = Paren | Toks], MacroDict, RevOutToks) ->
case dict:fetch(Name, MacroDict) of
{[], MacroValue} ->
%% This macro does not have any vars, so ignore the fact that the invocation is followed by "(...stuff"
%% Recursively expand any macro calls inside this macro's value
%% TODO: avoid infinite expansion due to circular references (even indirect ones)
RevExpandedOtherMacrosToks = subst_macros_rev(MacroValue, MacroDict, []),
subst_macros_rev([Paren|Toks], MacroDict, RevExpandedOtherMacrosToks ++ RevOutToks);
ParamsAndBody ->
%% This macro does have vars.
%% Collect all of the passe arguments, in an ordered list
{NToks, Arguments} = subst_macros_get_args(Toks, []),
%% Expand the varibles
ExpandedParamsToks = subst_macros_subst_args_for_vars(ParamsAndBody, Arguments),
%% Recursively expand any macro calls inside this macro's value
%% TODO: avoid infinite expansion due to circular references (even indirect ones)
RevExpandedOtherMacrosToks = subst_macros_rev(ExpandedParamsToks, MacroDict, []),
subst_macros_rev(NToks, MacroDict, RevExpandedOtherMacrosToks ++ RevOutToks)
end;
subst_macros_rev([{'?',_}, {_,_,Name} | Toks], MacroDict, RevOutToks) ->
%% This macro invocation does not have arguments.
%% Therefore the definition should not have parameters
{[], MacroValue} = dict:fetch(Name, MacroDict),
%% Recursively expand any macro calls inside this macro's value
%% TODO: avoid infinite expansion due to circular references (even indirect ones)
RevExpandedOtherMacrosToks = subst_macros_rev(MacroValue, MacroDict, []),
subst_macros_rev(Toks, MacroDict, RevExpandedOtherMacrosToks ++ RevOutToks);
subst_macros_rev([Tok|Toks], MacroDict, RevOutToks) ->
subst_macros_rev(Toks, MacroDict, [Tok|RevOutToks]);
subst_macros_rev([], _MacroDict, RevOutToks) -> RevOutToks.
subst_macros_get_args([{')',_} | Toks], RevArgs) ->
{Toks, reverse(RevArgs)};
subst_macros_get_args([{',',_}, {var,_,ArgName} | Toks], RevArgs) ->
subst_macros_get_args(Toks, [ArgName| RevArgs]);
subst_macros_get_args([{var,_,ArgName} | Toks], RevArgs) ->
subst_macros_get_args(Toks, [ArgName | RevArgs]).
subst_macros_subst_args_for_vars({[], BodyToks}, []) ->
BodyToks;
subst_macros_subst_args_for_vars({[Param | Params], BodyToks}, [Arg|Args]) ->
NBodyToks = keyreplace(Param, 3, BodyToks, {var,1,Arg}),
subst_macros_subst_args_for_vars({Params, NBodyToks}, Args).
read_include_file(Filename, IncludeSearchPath) ->
case file:path_open(IncludeSearchPath, Filename, [read, raw, binary]) of
{ok, IoDevice, FullName} ->
{ok, Data} = file:read(IoDevice, filelib:file_size(FullName)),
file:close(IoDevice),
binary_to_list(Data);
{error, Reason} ->
throw({failed_to_read_include_file, Reason, Filename, IncludeSearchPath})
end.
+79 -11
View File
@@ -1,56 +1,125 @@
% $Id$
{application, ejabberd,
[{description, "ejabberd"},
{vsn, "0.1-alpha"},
{vsn, "3.0.0-alpha-x"},
{modules, [acl,
adhoc,
configure,
cyrsasl_anonymous,
cyrsasl,
cyrsasl_digest,
cyrsasl_plain,
ejabberd,
ejabberd_admin,
ejabberd_app,
ejabberd_auth_anonymous,
ejabberd_auth,
ejabberd_auth_external,
ejabberd_auth_ldap,
ejabberd_auth_pam,
ejabberd_auth_storage,
ejabberd,
ejabberd_c2s,
ejabberd_c2s_config,
ejabberd_config,
ejabberd_ctl,
ejabberd_frontend_socket,
ejabberd_hooks,
ejabberd_http,
ejabberd_http_bind,
ejabberd_http_poll,
ejabberd_listener,
ejabberd_logger_h,
ejabberd_local,
ejabberd_logger_h,
ejabberd_loglevel,
ejabberd_node_groups,
ejabberd_rdbms,
ejabberd_receiver,
ejabberd_router,
ejabberd_router_multicast,
ejabberd_s2s,
ejabberd_s2s_in,
ejabberd_s2s_out,
ejabberd_service,
ejabberd_sm,
ejabberd_socket,
ejabberd_sup,
ejabberd_system_monitor,
ejabberd_tmp_sup,
ejabberd_update,
ejabberd_web_admin,
ejabberd_web,
ejabberd_zlib,
ejd2odbc,
eldap,
eldap_filter,
eldap_pool,
eldap_utils,
'ELDAPv3',
extauth,
gen_iq_handler,
gen_mod,
gen_pubsub_node,
gen_pubsub_nodetree,
idna,
jd2ejd,
jlib,
mod_adhoc,
mod_announce,
mod_caps,
mod_configure2,
mod_configure,
mod_disco,
mod_echo,
mod_http_bind,
mod_http_fileserver,
mod_last,
mod_muc,
mod_muc_log,
mod_muc_room,
mod_offline,
mod_privacy,
mod_private,
mod_proxy65,
mod_proxy65_lib,
mod_proxy65_service,
mod_proxy65_sm,
mod_proxy65_stream,
mod_pubsub,
mod_register,
mod_roster,
mod_service_log,
mod_shared_roster,
mod_stats,
mod_time,
mod_vcard,
mod_vcard_ldap,
mod_version,
node_buddy,
node_club,
node_default,
node_dispatch,
node_pep,
node_private,
node_public,
nodetree_default,
nodetree_virtual,
p1_fsm,
p1_mnesia,
p1_prof,
randoms,
sha,
shaper,
stringprep,
stringprep_sup,
tls,
translate,
xml,
xml_stream
'XmppAddr'
]},
{registered, [ejabberd,
ejabberd_sup,
ejabberd_auth,
ejabberd_router,
ejabberd_router_multicast,
ejabberd_sm,
ejabberd_s2s,
ejabberd_local,
@@ -63,7 +132,6 @@
ejabberd_mod_roster,
ejabberd_mod_echo,
ejabberd_mod_pubsub,
ejabberd_mod_irc,
ejabberd_mod_muc,
ejabberd_offline,
random_generator
@@ -73,7 +141,7 @@
{mod, {ejabberd_app, []}}]}.
% Local Variables:
% mode: erlang
% End:
%% Local Variables:
%% mode: erlang
%% End:
%% vim: set filetype=erlang tabstop=8:
+594 -112
View File
@@ -1,155 +1,637 @@
% $Id$
%%%
%%% ejabberd configuration file
%%%
%%%'
%override_acls.
%%% The parameters used in this configuration file are explained in more detail
%%% in the ejabberd Installation and Operation Guide.
%%% Please consult the Guide in case of doubts, it is included with
%%% your copy of ejabberd, and is also available online at
%%% http://www.process-one.net/en/ejabberd/docs/
%%% This configuration file contains Erlang terms.
%%% In case you want to understand the syntax, here are the concepts:
%%%
%%% - The character to comment a line is %
%%%
%%% - Each term ends in a dot, for example:
%%% override_global.
%%%
%%% - A tuple has a fixed definition, its elements are
%%% enclosed in {}, and separated with commas:
%%% {loglevel, 4}.
%%%
%%% - A list can have as many elements as you want,
%%% and is enclosed in [], for example:
%%% [http_poll, web_admin, tls]
%%%
%%% - A keyword of ejabberd is a word in lowercase.
%%% Strings are enclosed in "" and can contain spaces, dots, ...
%%% {language, "en"}.
%%% {ldap_rootdn, "dc=example,dc=com"}.
%%%
%%% - This term includes a tuple, a keyword, a list, and two strings:
%%% {hosts, ["jabber.example.net", "im.example.com"]}.
%%%
% Users that have admin access. Add line like one of the following after you
% will be successfully registered on server to get admin access:
%{acl, admin, {user, "aleksey"}}.
%{acl, admin, {user, "ermine"}}.
%%%. =======================
%%%' OVERRIDE STORED OPTIONS
% Blocked users:
%{acl, blocked, {user, "test"}}.
%%
%% Override the old values stored in the database.
%%
% Local users:
%%
%% Override global options (shared by all ejabberd nodes in a cluster).
%%
%%override_global.
%%
%% Override local options (specific for this particular ejabberd node).
%%
%%override_local.
%%
%% Remove the Access Control Lists before new ones are added.
%%
%%override_acls.
%%%. =========
%%%' DEBUGGING
%%
%% loglevel: Verbosity of log files generated by ejabberd.
%% 0: No ejabberd log at all (not recommended)
%% 1: Critical
%% 2: Error
%% 3: Warning
%% 4: Info
%% 5: Debug
%%
{loglevel, 4}.
%%
%% watchdog_admins: Only useful for developers: if an ejabberd process
%% consumes a lot of memory, send live notifications to these XMPP
%% accounts.
%%
%%{watchdog_admins, ["bob@example.com"]}.
%%%. =====================
%%%' CLUSTER CONFIGURATION
%% clusterid: the integer id of the cluster of nodes this node will
%% belong to.
{clusterid, 1}.
%%%. ================
%%%' SERVED HOSTNAMES
%%
%% hosts: Domains served by ejabberd.
%% You can define one or several, for example:
%% {hosts, ["localhost", "example.net", "example.com", "example.org"]}.
%%
%% Additional hosts will be discovered from the 'hosts' database table
%% configured for the first host.
{hosts, ["localhost"]}.
%%
%% route_subdomains: Delegate subdomains to other XMPP servers.
%% For example, if this ejabberd serves example.org and you want
%% to allow communication with an XMPP server called im.example.org.
%%
%%{route_subdomains, s2s}.
%%%. ===============
%%%' LISTENING PORTS
%%
%% listen: The ports ejabberd will listen on, which service each is handled
%% by and what options to start it with.
%%
{listen,
[
{5222, ejabberd_c2s, [
%%
%% If TLS is compiled in and you installed a SSL
%% certificate, specify the full path to the
%% file and uncomment this line:
%%
%%{certfile, "/path/to/ssl.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
%%
%% To enable the old SSL connection method on port 5223:
%%
%%{5223, ejabberd_c2s, [
%% {access, c2s},
%% {shaper, c2s_shaper},
%% {certfile, "/path/to/ssl.pem"}, tls,
%% {max_stanza_size, 65536}
%% ]},
{5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
%%
%% ejabberd_service: Interact with external components (transports, ...)
%%
%%{8888, ejabberd_service, [
%% {access, all},
%% {shaper_rule, fast},
%% {ip, {127, 0, 0, 1}},
%% {hosts, ["icq.example.org", "sms.example.org"],
%% [{password, "secret"}]
%% }
%% ]},
%%
%% ejabberd_stun: Handles STUN Binding requests
%%
%%{{3478, udp}, ejabberd_stun, []},
{5280, ejabberd_http, [
%%{request_handlers,
%% [
%% {["pub", "archive"], mod_http_fileserver}
%% ]},
captcha,
http_bind,
http_poll,
%%register,
web_admin
]}
]}.
%%
%% s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections.
%% Allowed values are: false optional required required_trusted
%% You must specify a certificate file.
%%
%%{s2s_use_starttls, optional}.
%%
%% s2s_certfile: Specify a certificate file.
%%
%%{s2s_certfile, "/path/to/ssl.pem"}.
%%
%% domain_certfile: Specify a different certificate for each served hostname.
%%
%%{domain_certfile, "example.org", "/path/to/example_org.pem"}.
%%{domain_certfile, "example.com", "/path/to/example_com.pem"}.
%%
%% S2S whitelist or blacklist
%%
%% Default s2s policy for undefined hosts.
%%
%%{s2s_default_policy, allow}.
%%
%% Allow or deny communication with specific servers.
%%
%%{{s2s_host, "goodhost.org"}, allow}.
%%{{s2s_host, "badhost.org"}, deny}.
%%
%% Outgoing S2S options
%%
%% Preferred address families (which to try first) and connect timeout
%% in milliseconds.
%%
%%{outgoing_s2s_options, [ipv4, ipv6], 10000}.
%%%. ==============
%%%' AUTHENTICATION
%%
%% auth_method: Method used to authenticate the users.
%% The default method is the internal Mnesia database storage.
%% If you want to use a different method,
%% comment those lines and enable the desired lines later.
%%
{auth_method, storage}.
{auth_storage, mnesia}.
%%
%% Authentication using ODBC
%% Remember to setup a database in the next section.
%%
%%{auth_method, storage}.
%%{auth_storage, odbc}.
%%
%% Authentication using external script
%% Make sure the script is executable by ejabberd.
%%
%%{auth_method, external}.
%%{extauth_program, "/path/to/authentication/script"}.
%%
%% Authentication using PAM
%%
%%{auth_method, pam}.
%%{pam_service, "pamservicename"}.
%%
%% Authentication using LDAP
%%
%%{auth_method, ldap}.
%%
%% List of LDAP servers:
%%{ldap_servers, ["localhost"]}.
%%
%% Encryption of connection to LDAP servers:
%%{ldap_encrypt, none}.
%%{ldap_encrypt, tls}.
%%
%% Port to connect to on LDAP servers:
%%{ldap_port, 389}.
%%{ldap_port, 636}.
%%
%% LDAP manager:
%%{ldap_rootdn, "dc=example,dc=com"}.
%%
%% Password of LDAP manager:
%%{ldap_password, "******"}.
%%
%% Search base of LDAP directory:
%%{ldap_base, "dc=example,dc=com"}.
%%
%% LDAP attribute that holds user ID:
%%{ldap_uids, [{"mail", "%u@mail.example.org"}]}.
%%
%% LDAP filter:
%%{ldap_filter, "(objectClass=shadowAccount)"}.
%%
%% Anonymous login support:
%% auth_method: anonymous
%% anonymous_protocol: sasl_anon | login_anon | both
%% allow_multiple_connections: true | false
%%
%%{host_config, "public.example.org", [{auth_method, anonymous},
%% {allow_multiple_connections, false},
%% {anonymous_protocol, sasl_anon}]}.
%%
%% To use both anonymous and internal authentication:
%%
%%{host_config, "public.example.org", [{auth_method, [internal, anonymous]}]}.
%%%. ==============
%%%' DATABASE SETUP
%% ejabberd by default uses the internal Mnesia database,
%% so you do not necessarily need this section.
%% This section provides configuration examples in case
%% you want to use other database backends.
%% Please consult the ejabberd Guide for details on database creation.
%% Template host ODBC configuration.
%% The host specified here will be used by default for all discovered vhosts.
%% The actual ODBC server configuration must be provided in a host_config directive.
{odbc_server, {host, "localhost"}}.
{host_config, "localhost",
[
%%
%% MySQL server:
%%
%%{odbc_server, {mysql, "server", "database", "username", "password"}}
%%
%% If you want to specify the port:
%%{odbc_server, {mysql, "server", 1234, "database", "username", "password"}}
%%
%% PostgreSQL server:
%%
%%{odbc_server, {pgsql, "server", "database", "username", "password"}}
%%
%% If you want to specify the port:
%%{odbc_server, {pgsql, "server", 1234, "database", "username", "password"}}
%%
]
}.
%% If you use PostgreSQL, have a large database, and need a
%% faster but inexact replacement for "select count(*) from users"
%%
%%{pgsql_users_number_estimate, true}.
%%
%% ODBC compatible or MSSQL server:
%%
%%{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}.
%%
%% Number of connections to open to the database for each virtual host
%%
%%{odbc_pool_size, 10}.
%%
%% Interval to make a dummy SQL request to keep the connections to the
%% database alive. Specify in seconds: for example 28800 means 8 hours
%%
%%{odbc_keepalive_interval, undefined}.
%%%. ===============
%%%' TRAFFIC SHAPERS
%%
%% The "normal" shaper limits traffic speed to 1000 B/s
%%
{shaper, normal, {maxrate, 1000}}.
%%
%% The "fast" shaper limits traffic speed to 50000 B/s
%%
{shaper, fast, {maxrate, 50000}}.
%%
%% This option specifies the maximum number of elements in the queue
%% of the FSM. Refer to the documentation for details.
%%
{max_fsm_queue, 1000}.
%%%. ====================
%%%' ACCESS CONTROL LISTS
%%
%% The 'admin' ACL grants administrative privileges to XMPP accounts.
%% You can put here as many accounts as you want.
%%
%%{acl, admin, {user, "aleksey", "localhost"}}.
%%{acl, admin, {user, "ermine", "example.org"}}.
%%
%% Blocked users
%%
%%{acl, blocked, {user, "baduser", "example.org"}}.
%%{acl, blocked, {user, "test"}}.
%%
%% Local users: don't modify this line.
%%
{acl, local, {user_regexp, ""}}.
% Another examples of ACLs:
%{acl, jabberorg, {server, "jabber.org"}}.
%{acl, aleksey, {user, "aleksey", "jabber.ru"}}.
%{acl, test, {user_regexp, "^test"}}.
%{acl, test, {user_glob, "test*"}}.
%%
%% More examples of ACLs
%%
%%{acl, jabberorg, {server, "jabber.org"}}.
%%{acl, aleksey, {user, "aleksey", "jabber.ru"}}.
%%{acl, test, {user_regexp, "^test"}}.
%%{acl, test, {user_glob, "test*"}}.
%%
%% Define specific ACLs in a virtual host.
%%
%%{host_config, "localhost",
%% [
%% {acl, admin, {user, "bob-local", "localhost"}}
%% ]
%%}.
% Only admins can use configuration interface:
{access, configure, [{allow, admin}]}.
%%%. ============
%%%' ACCESS RULES
% Every username can be registered via in-band registration:
{access, register, [{allow, all}]}.
%% Maximum number of simultaneous sessions allowed for a single user:
{access, max_user_sessions, [{10, all}]}.
% After successful registration user will get message with following subject
% and body:
{welcome_message,
{"Welcome!",
"Welcome to Jabber Service. "
"For information about Jabber visit http://jabber.org"}}.
% Replace them with 'none' if you don't want to send such message:
%{welcome_message, none}.
%% Maximum number of offline messages that users can have:
{access, max_user_offline_messages, [{5000, admin}, {100, all}]}.
% List of people who will get notifications about registered users
%{registration_watchers, ["admin1@localhost",
% "admin2@localhost"]}.
%% This rule allows access only for local users:
{access, local, [{allow, local}]}.
% Only admins can send announcement messages:
{access, announce, [{allow, admin}]}.
% Only non-blocked users can use c2s connections:
%% Only non-blocked users can use c2s connections:
{access, c2s, [{deny, blocked},
{allow, all}]}.
% Set shaper with name "normal" to limit traffic speed to 1000B/s
{shaper, normal, {maxrate, 1000}}.
% Set shaper with name "fast" to limit traffic speed to 50000B/s
{shaper, fast, {maxrate, 50000}}.
% For all users except admins used "normal" shaper
%% For C2S connections, all users except admins use the "normal" shaper
{access, c2s_shaper, [{none, admin},
{normal, all}]}.
% For all S2S connections used "fast" shaper
%% All S2S connections use the "fast" shaper
{access, s2s_shaper, [{fast, all}]}.
% Admins of this server are also admins of MUC service:
%% Only admins can send announcement messages:
{access, announce, [{allow, admin}]}.
%% Only admins can use the configuration interface:
{access, configure, [{allow, admin}]}.
%% Admins of this server are also admins of the MUC service:
{access, muc_admin, [{allow, admin}]}.
% All users are allowed to use MUC service:
%% Only accounts of the local ejabberd server can create rooms:
{access, muc_create, [{allow, local}]}.
%% All users are allowed to use the MUC service:
{access, muc, [{allow, all}]}.
% This rule allows access only for local users:
{access, local, [{allow, local}]}.
%% Only accounts on the local ejabberd server can create Pubsub nodes:
{access, pubsub_createnode, [{allow, local}]}.
%% In-band registration allows registration of any possible username.
%% To disable in-band registration, replace 'allow' with 'deny'.
{access, register, [{allow, all}]}.
%% By default the frequency of account registrations from the same IP
%% is limited to 1 account every 10 minutes. To disable, specify: infinity
%%{registration_timeout, 600}.
%%
%% Define specific Access Rules in a virtual host.
%%
%%{host_config, "localhost",
%% [
%% {access, c2s, [{allow, admin}, {deny, all}]},
%% {access, register, [{deny, all}]}
%% ]
%%}.
% Authentification method. If you want to use internal user base, then use
% this line:
{auth_method, internal}.
%%%. =======
%%%' CAPTCHA
% For LDAP authentification use these lines instead of above one:
%{auth_method, ldap}.
%{ldap_servers, ["localhost"]}. % List of LDAP servers
%{ldap_uidattr, "uid"}. % LDAP attribute that holds user ID
%{ldap_base, "dc=example,dc=com"}. % Base of LDAP directory
%%
%% Full path to a script that generates the image.
%%
%%{captcha_cmd, "/lib/ejabberd/priv/bin/captcha.sh"}.
% For authentification via external script use the following:
%{auth_method, external}.
%{extauth_program, "/path/to/authentification/script"}.
% For authentification via ODBC use the following:
%{auth_method, odbc}.
%{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}.
%% Host for the URL and port where ejabberd listens for CAPTCHA requests.
%%
%%{captcha_host, "example.org:5280"}.
% Host name:
{hosts, ["localhost"]}.
%%%. ================
%%%' DEFAULT LANGUAGE
% Default language for server messages
%%
%% language: Default language used for server messages.
%%
{language, "en"}.
% Listened ports:
{listen,
[{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
starttls, {certfile, "./ssl.pem"}]},
{5223, ejabberd_c2s, [{access, c2s},
tls, {certfile, "./ssl.pem"}]},
% Use these two lines instead if TLS support is not compiled
%{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper}]},
%{5223, ejabberd_c2s, [{access, c2s}, ssl, {certfile, "./ssl.pem"}]},
{5269, ejabberd_s2s_in, [{shaper, s2s_shaper}]},
{5280, ejabberd_http, [http_poll, web_admin]},
{8888, ejabberd_service, [{access, all},
{hosts, ["icq.localhost", "sms.localhost"],
[{password, "secret"}]}]}
]}.
% If SRV lookup fails, then port 5269 is used to communicate with remote server
{outgoing_s2s_port, 5269}.
%%
%% Set a different default language in a virtual host.
%%
%%{host_config, "localhost",
%% [{language, "ru"}]
%%}.
% Used modules:
%%%. ================
%%%' INSTANCE MODULES
%%
%% Modules to start for every virtual host.
%%
%% Note: One copy of each module will be started for each host.
%%
{modules,
[
{mod_register, [{access, register}]},
{mod_roster, []},
{mod_privacy, []},
{mod_configure, []},
{mod_configure2, []},
{mod_disco, []},
{mod_stats, []},
{mod_vcard, []},
{mod_offline, []},
{mod_announce, [{access, announce}]},
{mod_echo, [{host, "echo.localhost"}]},
{mod_private, []},
{mod_irc, []},
% Default options for mod_muc:
% host: "conference." ++ ?MYNAME
% access: all
% access_create: all
% access_admin: none (only room creator has owner privileges)
{mod_muc, [{access, muc},
{access_create, muc},
{access_admin, muc_admin}]},
{mod_pubsub, []},
{mod_time, []},
{mod_last, []},
{mod_version, []}
{mod_adhoc, []},
{mod_announce, [{access, announce}]}, % recommends mod_adhoc
{mod_caps, []}, % 1 proc/host
{mod_configure,[]}, % requires mod_adhoc
{mod_disco, []},
%%{mod_echo, [{host, "echo.localhost"}]},
{mod_http_bind, []},
%%{mod_http_fileserver, [
%% {docroot, "/var/www"},
%% {accesslog, "/var/log/ejabberd/access.log"}
%% ]},
{mod_last, []},
{mod_muc, [ % 1 proc/host
{host, "conference.@HOST@"},
{access, muc},
{access_create, muc_create},
{access_persistent, muc_create},
{access_admin, muc_admin}
]},
%%{mod_muc_log,[]},
%%{mod_multicast,[]},
{mod_offline, [{access_max_user_messages, max_user_offline_messages}]},
{mod_ping, []},
%%{mod_pres_counter,[{count, 5}, {interval, 60}]},
{mod_privacy, []},
{mod_private, []},
%%{mod_proxy65,[]},
%%{mod_pubsub, [ % 1 proc/host
%% {access_createnode, pubsub_createnode},
%% {ignore_pep_from_offline, true}, % reduces resource comsumption, but XEP incompliant
%% %%{ignore_pep_from_offline, false}, % XEP compliant, but increases resource comsumption
%% {last_item_cache, false},
%% {plugins, ["flat", "pep"]} % pep requires mod_caps
%% ]},
{mod_register, [
%%
%% Protect In-Band account registrations with CAPTCHA.
%%
%%{captcha_protected, true},
%%
%% Set the minimum informational entropy for passwords.
%%
%%{password_strength, 32},
%%
%% After successful registration, the user receives
%% a message with this subject and body.
%%
{welcome_message, {"Welcome!",
"Hi.\nWelcome to this XMPP server."}},
%%
%% When a user registers, send a notification to
%% these XMPP accounts.
%%
%%{registration_watchers, ["admin1@example.org"]},
%%
%% Only clients in the server machine can register accounts
%%
{ip_access, [{allow, "127.0.0.0/8"},
{deny, "0.0.0.0/0"}]},
%%
%% Local c2s or remote s2s users cannot register accounts
%%
%%{access_from, deny},
{access, register}
]},
%%{mod_register_web, [
%%
%% When a user registers, send a notification to
%% these XMPP accounts.
%%
%%{registration_watchers, ["admin1@example.org"]}
%% ]},
{mod_roster, []},
%%{mod_service_log,[]},
{mod_shared_roster,[]},
{mod_stats, []},
{mod_time, []},
{mod_vcard, []}, % 1 proc/host
{mod_version, []}
]}.
%%%.
%%%' STATIC MODULES
%%
%% Modules to start for the global virtual host ("localhost").
%%
%% The functionality of these modules will be enabled in all ejabberd
%% virtual hosts without consuming more resources.
%%
{static_modules,
[
]}.
% Local Variables:
% mode: erlang
% End:
%%%.
%%%' HOST SPECIFIC MODULES
%%
%% Enable modules with custom options in a specific virtual host
%%
%%{host_config, "localhost",
%% [{{add, modules},
%% [
%% {mod_echo, [{host, "mirror.localhost"}]}
%% ]
%% }
%% ]}.
%%%.
%%%'
%%% Local Variables:
%%% mode: erlang
%%% End:
%%% vim: set filetype=erlang tabstop=8 foldmarker=%%%',%%%. foldmethod=marker:
+84 -8
View File
@@ -1,24 +1,49 @@
%%%----------------------------------------------------------------------
%%% File : ejabberd.erl
%%% Author : Alexey Shchepin <alexey@sevcom.net>
%%% Purpose :
%%% Created : 16 Nov 2002 by Alexey Shchepin <alexey@sevcom.net>
%%% Id : $Id$
%%% Author : Alexey Shchepin <alexey@process-one.net>
%%% Purpose : ejabberd wrapper: start / stop
%%% Created : 16 Nov 2002 by Alexey Shchepin <alexey@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2011 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------
-module(ejabberd).
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
-author('alexey@process-one.net').
-export([start/0, stop/0,
get_so_path/0]).
get_so_path/0,
get_bin_path/0,
get_pid_file/0,
is_my_host/1,
normalize_host/1
]).
-include("ejabberd.hrl").
start() ->
%%ejabberd_cover:start(),
application:start(ejabberd).
stop() ->
application:stop(ejabberd).
%%ejabberd_cover:stop().
get_so_path() ->
case os:getenv("EJABBERD_SO_PATH") of
@@ -32,3 +57,54 @@ get_so_path() ->
Path ->
Path
end.
get_bin_path() ->
case os:getenv("EJABBERD_BIN_PATH") of
false ->
case code:priv_dir(ejabberd) of
{error, _} ->
".";
Path ->
filename:join([Path, "bin"])
end;
Path ->
Path
end.
is_my_host([$* | _]) ->
false;
is_my_host(Host) ->
case ejabberd_config:get_local_option({Host, host}) of
undefined ->
WCHost = re:replace(Host, "^[^.]*\.", "*.", [{return, list}]),
case ejabberd_config:get_local_option({WCHost, host}) of
undefined ->
false;
_ ->
true
end;
_ ->
true
end.
normalize_host(global) ->
global;
normalize_host(Host) ->
WCHost = re:replace(Host, "^[^.]*\.", "*.", [{return, list}]),
case ejabberd_config:get_local_option({WCHost, host}) of
undefined ->
Host;
_ ->
WCHost
end.
%% @spec () -> false | string()
get_pid_file() ->
case os:getenv("EJABBERD_PID_PATH") of
false ->
false;
"" ->
false;
Path ->
Path
end.

Some files were not shown because too many files have changed in this diff Show More