Compare commits

..

2862 Commits

Author SHA1 Message Date
Evgeniy Khramtsov 1c095b609a Merge branch '3.0.x' of github.com:processone/maincustomers into 3.0.x 2013-05-15 21:58:14 +10:00
Evgeniy Khramtsov a819514e43 Define primary key in sr_group table 2013-05-15 21:57:53 +10:00
Badlop 8cb3f61f88 Tweak ejabberd_listener to allow ejabberd_xmlrpc work properly 2013-05-14 18:50:29 +02:00
Evgeniy Khramtsov 4bc4f54e43 Do not make DB query on get_group_opt (part of TECH-220) 2013-05-14 17:31:24 +10:00
Christophe Romain 1cacd48261 add simple event logger 2013-05-07 10:42:50 +02:00
Paweł Chmielowski a61b7b1d98 Don't forget about directed presences sent after receiving global presence
It caused problem with presences send to conference rooms, as this change
made us not always send presence unavailable when user went offline, which
did make conference have phantom users.

This revert functional changes introduced in
e521c8368a
2013-05-03 10:42:24 +02:00
Paweł Chmielowski a55c85252f Add ability to limit number of registered users.
This limit can be configure in host_config options like this:

{host_config "jabber.example.org", [{max_users, 100}]}.
2013-05-03 10:33:19 +02:00
Evgeniy Khramtsov 40ae9b33ef Add a function for massive users creation 2013-04-29 21:05:10 +10:00
Evgeniy Khramtsov e2357ecd96 Add a function for massive roster creation 2013-04-29 20:52:55 +10:00
Paweł Chmielowski 0116287405 Properly convert responses from ODBC databases, when generating command results 2013-04-26 17:48:18 +02:00
Christophe Romain 6ee534b262 return success on command on updated records as well 2013-04-26 01:23:40 +02:00
Paweł Chmielowski 42f72a49b1 When ej_command don't have example input, try to generate one based on args type 2013-04-22 12:45:15 +02:00
Evgeniy Khramtsov 771acc3ac7 Set utf8_bin collation for MySQL (thanks to George Hazan) 2013-04-17 23:51:55 +10:00
Paweł Chmielowski 5706aaa89c Add XMLRPC documentation generator for ejabberd_commands
This functionality is available as additional ejabberd_command, executing
'ejabberdctl gen_xmlrpc_docs /home/me/docs/out.html shared_roster' will
generate html file with description of all commands which names match
regexp shared_roster.

To get better output #ejabberd_command definitions get extended with few
new fields, now it's possible to specify description for each
argument (in args_desc field), result (result_desc) and provide example
arguments list (args_example) or result (result_example) used to generate
example code in various languages.

All those fields are optional, so output for not updated commands still
will be generated, but will not look as good.
2013-04-16 11:35:47 +02:00
Alexey Shchepin c17bbc8859 Use get_roster hook instead of mod_roster:get_user_roster in mod_admin_p1 2013-04-11 14:00:37 +03:00
Alexey Shchepin 8f317c0059 Fixed mod_shared_roster:add_user_to_group return value, which was broken after the previous change 2013-04-10 15:38:43 +03:00
Alexey Shchepin ae5c31b06d Fixed shared roster updates pushing 2013-04-07 21:22:35 +03:00
Alexey Shchepin b09cda5c17 ejabberd_ws is now R16B-compatible 2013-04-03 15:14:16 +03:00
Christophe Romain 7887392c1d Update copyright dates 2013-03-27 10:36:48 +01:00
Paweł Chmielowski cc2b7d2832 Fix argument types in user_resources command 2013-03-22 13:47:05 +01:00
Paweł Chmielowski 0a69935b6b Fix type arguments in commands from mod_admin_p1 2013-03-22 13:46:30 +01:00
Paweł Chmielowski 4b7c74415f Fix warning from last commit 2013-03-19 19:09:16 +01:00
Paweł Chmielowski 418baf4fa6 Fix processing of list arguments in xmlrpc handler
Before this change only lists with exactly single element were handled
properly.
2013-03-19 19:02:03 +01:00
Paweł Chmielowski fcf647738d erlang:integer_to_binary was added in R16, switch to method which works in older versions 2013-03-18 12:46:59 +01:00
Paweł Chmielowski 3c9ab9e53d Httpc is not able to process binary headers or url, we need to convert them 2013-03-18 12:44:26 +01:00
Paweł Chmielowski c339c9b2ad Add ejabberd_commands for managing shared roster groups 2013-03-13 12:14:05 +01:00
Paweł Chmielowski 4ef32bb18f Make ejabberd_ctl not die for ejabberd_commands with binary arguments 2013-03-13 11:13:19 +01:00
Paweł Chmielowski 0f87034539 Make http connections serve flash policy files 2013-02-01 13:05:20 +01:00
Paweł Chmielowski acee58f6bb Fix problem from conversion to binaries in old websocket protocol handler 2013-01-31 20:11:02 +01:00
Jerome Sautret ceeef24faa Fix type error on MUC room config form generation. 2013-01-30 11:05:38 +01:00
Badlop 201b0b3725 Fix another dialyzer warning 2013-01-09 22:25:54 +01:00
Badlop 5f8b41a357 ssl:seed was removed in OTP R14B04. Fix dialyzer warning. 2013-01-09 12:58:57 +01:00
Badlop a003ef556b Fix two dialyzer warnings 2013-01-09 12:40:42 +01:00
Badlop cb91e10803 Copied check_account and check_password from old mod_xmlrpc (TECH-1519) 2013-01-04 13:32:21 +01:00
Badlop 5190866a24 Copied set_rosternick from old mod_xmlrpc (TECH-1519) 2013-01-04 12:37:35 +01:00
Evgeniy Khramtsov 473a58e3c2 Fix iconv wrapper 2013-01-03 20:15:33 +10:00
Pablo Polvorin 3e6b88cbc3 Fix pubsub_state mnesia table definition
Partially bound lookups keys only works efficiently if the table
type if ordered_set.
If the table is a set, then it is implemented as a hashtable,
and if the lookup key isn't fully bound an entire table scan
is neccesarly.
2012-12-21 12:48:27 -03:00
Alexey Shchepin 362d7f617d Fixed signedness issue in tls_drv GET_DESCRYPTED_INPUT (EJAB-1591) 2012-12-20 14:03:28 +02:00
Remco Wendt d11df52abf Added command to list all the vhosts registered in an ejabberd node 2012-12-19 15:08:19 +02:00
Janusz Dziemidowicz 906161b27f Detect OpenSSL version at runtime, not at compile time 2012-12-17 14:41:37 +02:00
Janusz Dziemidowicz 347e8b28ef Enable DHE key exchange in TLS driver 2012-12-17 14:41:37 +02:00
Janusz Dziemidowicz c85c2796f4 Enable ECDHE key exchange in TSL driver 2012-12-17 14:41:37 +02:00
Janusz Dziemidowicz df72de96ae Disable old and unsecure ciphers in TLS driver
Disable:
- export ciphers - broken by design, 40 and 56 bit encryption
- low encryption ciphers - 56 and 64 bit encryption
- SSLv2 ciphers - some ciphers using MD5 MAC
2012-12-17 14:41:37 +02:00
Evgeniy Khramtsov e1f8233d08 Fix broken JPEG photo (EJAB-1526)
Conflicts:

	src/eldap/eldap_filter.erl
2012-12-12 18:10:08 +10:00
Badlop 38d2a27c56 Provide ejabberd_xmlrpc configuration examples 2012-12-10 13:56:16 +01:00
Badlop 6a42119292 Document ejabberd_xmlrpc in the Guide 2012-12-10 13:36:47 +01:00
Badlop 89787875d4 In frontends, if result is in binary then convert to string 2012-12-10 13:36:34 +01:00
Badlop d76ae701cd Partial revert "Test for binary arguments and results to get_roster command" 2012-12-10 13:35:37 +01:00
Evgeniy Khramtsov c4db156ad2 Reflect new ejabberd_sets usage in the type spec.
This will eliminate dialyzer warnings
2012-12-10 12:40:09 +10:00
Evgeniy Khramtsov d95778ea16 Make hash lookups more robust (EJABS-1965)
Conflicts:

	src/ejabberd_cluster.erl
2012-12-10 12:38:17 +10:00
Alexey Shchepin a9b452fba9 Fixed config parsing error messages 2012-12-07 16:12:49 +02:00
Alexey Shchepin afed9e919e Use ejabberd_listener instead of tcp_serv in ejabberd_xmlrpc 2012-12-07 16:06:15 +02:00
Badlop 5252dcbd2c Fix some http Dialyzer warnings 2012-12-07 13:53:58 +01:00
Evgeniy Khramtsov a5cfac76dd Don't bounce broadcasts, i.e. bounce xmlel{}s only 2012-11-29 14:28:28 +10:00
Badlop 45aa32f6fe Document export_odbc command 2012-11-26 14:01:25 +01:00
Evgeniy Khramtsov 2372e30150 Improve Riak support 2012-11-21 11:30:50 +10:00
Alexey Shchepin f3b55596b2 Updated riak support
Conflicts:

	src/mod_roster.erl
2012-11-21 11:30:30 +10:00
Alexey Shchepin 84eee8d5a7 Preliminary Riak support 2012-11-21 11:28:49 +10:00
Badlop a800a5d4df Test for binary arguments and results to get_roster command 2012-11-20 13:57:41 +01:00
Badlop dfa47556d1 Add support for binary arguments and results to ejabberd_xmlrpc 2012-11-20 13:57:41 +01:00
Badlop 77111aeec1 Add support for binary arguments to ejabberd_xmlrpc 2012-11-20 12:43:59 +01:00
Badlop c9ac75474f Update to xmlrpc-rds13
Cloned from
https://github.com/rds13/xmlrpc
2012-11-20 12:43:54 +01:00
Pablo Polvorin 0fcaef0566 Backward compatibility for xep-0280 v0.6 (EJABS-1953)
make mod_carboncopy supports v0.8 and v0.6
2012-11-19 16:05:23 -03:00
Badlop 031c7412a8 Partially revert "Fix and document persistent_history MUC option (EJABS-1865)"
This reverts commit ab9ac62138.
2012-11-19 13:28:57 +01:00
Evgeniy Khramtsov 594ff79514 Make terms serialization faster
Conflicts:

	src/odbc/ejabberd_odbc.erl
2012-11-18 12:30:36 +10:00
Evgeniy Khramtsov 8f3f74a6d7 Only migrate C2S processes with remote sockets
Conflicts:

	src/ejabberd_c2s.erl
	src/ejabberd_sm.erl
2012-11-16 20:36:40 +10:00
Evgeniy Khramtsov ff2050b301 Clean tables from remote pids when their node goes down
Conflicts:

	src/ejabberd_sm.erl
	src/mod_muc/mod_muc.erl
	src/web/mod_bosh.erl
2012-11-15 15:16:42 +10:00
Pablo Polvorin 89ea1dd1c4 Adapt to XEP-0280 v0.8 2012-11-14 12:57:25 -03:00
Pablo Polvorin 66902b788b Do not require special api for ejabberd_set
Remove the pack() function, make mod_roster
return subscriptions splitted by {From, To, Both}
2012-11-12 22:32:33 -03:00
Christophe Romain ec8cb81c0d make sure publisher is #jid (TECH-1499) 2012-11-12 16:08:09 +01:00
Pablo Polvorin 1a24ac62e5 Change representation of JID sets
Instead of a single set, use a map from domains to
resources (in presence sets the resource is usually empty) to
users.  This makes the sharing explicit

DomainA
	-> Resource1
		-> User1, User2, ..
	-> Resource2
		-> User3
DomainB
	->Resource3
		-> User4, User5, User6
2012-11-11 22:25:20 -03:00
Pablo Polvorin 78fb913a00 Use a custom set module, reuse structs when possible.
For JID sets in ejabberd_c2s
2012-11-09 21:53:28 -03:00
Pablo Polvorin e521c8368a Improvement
Instead of traversing and constructing a new set,
share the set structure when constructing the pres_a
set.
2012-11-09 16:58:47 -03:00
Pablo Polvorin ac8c536b50 Improvement
Force the binary to be a heap binary, rather than
keeping it as a refcount or sub-binary
2012-11-09 16:57:23 -03:00
Badlop 84d9ee07b4 Document MUC domain_balancing broadcast (EJABS-1866) 2012-11-06 10:54:58 +01:00
Badlop ab9ac62138 Fix and document persistent_history MUC option (EJABS-1865) 2012-11-02 13:21:50 +01:00
Evgeniy Khramtsov beaf351ba4 Document mod_admin_p1 module 2012-11-01 18:48:23 +10:00
Alexey Shchepin 37d3a4e1f5 Merge branch '3.0.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers.git into 3.0.x 2012-10-30 14:18:32 +02:00
Alexey Shchepin 566c046cd5 Fixed "message" tag checking in standby mode 2012-10-30 14:17:49 +02:00
Badlop df921fef40 Show binaries as strings in WebAdmin; handle tab characters. 2012-10-30 13:05:30 +01:00
Alexey Shchepin 56e7affdfd Don't try to send privacy pushes in OOR mode (a line was not removed in the previous commit) 2012-10-30 13:45:04 +02:00
Alexey Shchepin bef66dba24 Don't try to send privacy pushes in OOR mode 2012-10-30 13:29:15 +02:00
Pablo Polvorin e62af41fa8 Fix mod_ack:user_send_packet/3 signature (thanks zzolkiewski)
That hook has 4 arguments
2012-10-29 12:25:44 -03:00
Badlop 472089a328 Show binaries in a pretty format in WebAdmin 2012-10-29 13:40:50 +01:00
Evgeniy Khramtsov c4d582ace4 Add the guide for commercial usage 2012-10-29 20:15:46 +10:00
Evgeniy Khramtsov a4e320c263 Get rid of dreaded tuple_to_list(now()) 2012-10-26 20:02:25 +10:00
Evgeniy Khramtsov 7d3d008940 Fix data convertion 2012-10-25 22:42:58 +10:00
Evgeniy Khramtsov 3be9c27509 "epam" should return binaries, not strings 2012-10-24 18:09:11 +10:00
Evgeniy Khramtsov 3ef6e4c834 Process 'max_s2s_connections' and 'max_s2s_connections_per_node'
options correctly
2012-10-23 21:16:05 +10:00
Alexey Shchepin a15e689386 Merge branch '3.0.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers.git into 3.0.x 2012-10-03 16:22:32 +03:00
Alexey Shchepin 7c8a452b00 Fixed a typo in ejabberd_s2s_in SUPERVISOR_START definition 2012-10-03 16:21:54 +03:00
Christophe Romain e5d202a0bf clean the pubsub odbc patch 2012-10-01 11:48:08 +02:00
Evgeniy Khramtsov 083dfe01ea Check a node of a migrating process (EJABS-1908) 2012-09-27 12:39:52 +10:00
Christophe Romain f0c745b916 add OSX compatibility note 2012-09-26 09:55:30 +02:00
Badlop 9ff1a80db4 Fix record definition (EJAB-1578) 2012-09-18 17:50:53 +02:00
Evgeniy Khramtsov 5480ee29fd Fix spec 2012-09-18 23:39:40 +10:00
Evgeniy Khramtsov 0d4b0b4218 Fix dialyzer types 2012-09-18 23:30:28 +10:00
Paweł Chmielowski cfe396e155 Don't forget about webscoket_handlers in pipelined http requests 2012-09-14 18:34:58 +02:00
Paweł Chmielowski 2163cbb22e Make websocket work over tls 2012-09-14 18:29:16 +02:00
Paweł Chmielowski 6b3f228327 Unify paths for handling websocket and regular http requests
This allow to easily produce html output from error paths in websocket code,
and this ability is used to produce informational page when regular http
request is directed to websocket url. Additionally HEAD and OPTIONS request
are now handled correctly.
2012-09-14 17:51:54 +02:00
Paweł Chmielowski e58e6a09dd Unify GET and POST handling code
Code for both it almost identical, extract all differences to separate
function extract_path_query.
2012-09-14 17:11:35 +02:00
Paweł Chmielowski 2d05ddd466 Fix syntax error in ejabberd_websocket 2012-09-14 16:07:58 +02:00
Paweł Chmielowski 975f4c56d4 Don't try to decode utf-8 codepoints in ej_websocket only to convert it back to utf-8 in ej_http_ws
Additionally that conversion code was wrong sometimes and lead to loosing
some bits of information.

This fixes EJABS-1875
2012-09-14 10:20:33 +02:00
Paweł Chmielowski 8eef2f02bf Properly handle websocket sub-protocols 2012-09-14 10:15:32 +02:00
Paweł Chmielowski 2f7c69fd14 Properly handle close op in websocket 2012-09-14 10:05:42 +02:00
Pablo Polvorin 02eeebd41a Fix mod_ack, make it work with both oor and normal clients.
If the client is able to go to oor, mod_ack must made it do so.
If the client is not able to to go oor mode,  mod_ack must stop
the c2s session, and wait for it to really terminate before
continuing (to avoid race conditions, see EJABS-1677).

Conflicts:

	src/ejabberd_c2s.erl
	src/mod_ack.erl
	src/mod_ping.erl
2012-09-13 14:05:36 -03:00
Pablo Polvorin 99610c3357 Make mod_ack work with applepush (TECH-1463) (thanks aleksey)
Do not forcelly kill the c2s process.

Conflicts:

	src/mod_ack.erl

Conflicts:

	src/mod_ack.erl
2012-09-13 13:50:39 -03:00
Evgeniy Khramtsov aad740f34c LDAP StartTLS support
Conflicts:

	src/ejabberd_auth_ldap.erl
	src/eldap/eldap.erl
	src/mod_shared_roster_ldap.erl
	src/mod_vcard_ldap.erl
	src/tls/tls.erl
2012-09-13 17:59:45 +10:00
Evgeniy Khramtsov a70c72e50e Move SM dispatchers code in a separate file
and make it more robust (EJABS-1845)

Conflicts:

	src/ejabberd_sm.erl
	src/ejabberd_sup.erl
2012-09-13 17:09:32 +10:00
Evgeniy Khramtsov a2fdc75730 Add forgotten file 2012-09-13 17:04:23 +10:00
Evgeniy Khramtsov b82789f11d Make gen_iq_handlers more robust (EJABS-1758)
Conflicts:

	src/ejabberd_local.erl
	src/ejabberd_sm.erl
	src/gen_iq_handler.erl
2012-09-13 17:04:13 +10:00
Evgeniy Khramtsov 6b7d70adf6 Do not close session with an item-not-found error when
receiving duplicate request with same rid as the currently
active one (EJABS-1844) (thanks to Pawel Chmielowski)

Conflicts:

	src/web/ejabberd_bosh.erl
2012-09-13 16:50:54 +10:00
Badlop 10f10a2fd3 Allow multiple fqdn values in configuration (EJAB-1578) 2012-09-12 19:55:00 +02:00
Badlop 35c4e740ab Fix recent commit "Reduce size..." 2012-09-12 19:48:18 +02:00
Christophe Romain e3085a4d48 put cleaning code to pubsub_debug 2012-09-12 15:08:39 +02:00
Janusz Dziemidowicz e8d008c392 Reduce size of XML stream state
This makes size of hibernated ejabberd_receiver a lot smaller (from
~290 words down to ~40).
2012-09-11 21:27:16 +02:00
Badlop 674ab27700 Send announce Message stanzas as Headline type instead of Normal 2012-09-11 20:32:29 +02:00
Badlop 9442a583bc Check node name is available before starting ejabberd (EJAB-1572) 2012-09-11 20:22:56 +02:00
Badlop 9787416e88 Fix file name of Name Service Switch (thanks to Konstantin Khomoutov) 2012-09-11 19:38:38 +02:00
Badlop fbe2995696 Update Slovak translation (thanks to Marek Bečka) 2012-09-11 17:39:37 +02:00
Christophe Romain 33251cd5a8 fix configure to display generic version 2012-09-11 17:27:31 +02:00
Christophe Romain f387934886 update copyright date to 2012 2012-09-11 17:18:22 +02:00
Badlop fb39b163df Explain that 2 LDAP connections are established per vhost 2012-09-11 16:30:22 +02:00
Christophe Romain 011535f0de binary refactoring 2012-09-11 15:45:59 +02:00
Evgeniy Khramtsov 75d3152a0f Merge branch '2.1.x' into 2.2.x
Conflicts:
	src/mod_muc/mod_muc.erl
	src/mod_muc/mod_muc_room.erl
	src/mod_offline.erl
	src/mod_offline_odbc.erl
	src/mod_shared_roster.erl
	src/web/ejabberd_http_bind.erl
2012-05-04 14:19:52 +10:00
Paweł Chmielowski 6c94d040fa Repeated http-bind request should abort only requests with same rid
Before this change, when request with repeat rid was received any waiting
request was aborted (but only after next request was delivered). With this
change, only request with identical rid are aborted and this is done
immediately
2012-05-03 11:44:34 +02:00
Paweł Chmielowski e8921d79ba Receiving missing http-bind request shouldn't close waiting out-ouf-order request 2012-05-03 11:44:21 +02:00
Evgeniy Khramtsov db8bd0126b Remove CRLFs introduced in the previous merge 2012-05-03 18:34:53 +10:00
Evgeniy Khramtsov 6719d9669b Fix get_subscription_lists/4 2012-04-29 19:34:57 +10:00
Paweł Chmielowski 8b13226d00 Do not trigger item-not-found errors in mod_http_bind (part of EJABS-1827)
This changes what happens to request received with out of order rid,
previously response to such request was send immediately, and client was
free to submit another request, which triggered item-not-found if it was
delivered before request with missing rid.

This change make us wait for sending response to out of order request until
request with missing rid arrives. It also queues all outgoing data before
that condition is meet.
2012-04-27 13:23:19 +02:00
Paweł Chmielowski 545f9ce525 Do not trigger item-not-found errors in mod_http_bind (part of EJABS-1827)
This changes what happens to request received with out of order rid,
previously response to such request was send immediately, and client was
free to submit another request, which triggered item-not-found if it was
delivered before request with missing rid.

This change make us wait for sending response to out of order request until
request with missing rid arrives. It also queues all outgoing data before
that condition is meet.
2012-04-27 13:19:49 +02:00
Evgeniy Khramtsov 437f68a9f3 Merge SQL and Mnesia code into one module (EJAB-1560) 2012-04-27 19:52:05 +10:00
Christophe Romain 7f1e9d3972 merge from 2.1.11 and resolve conflicts 2012-04-27 11:37:11 +02:00
Badlop 453e249de3 Update ejabberd version number to 2.1.11 2012-04-26 16:04:16 +02:00
Badlop 8688030d7a Add ejabberd 2.1.11 release notes 2012-04-26 15:57:37 +02:00
Badlop 6e2003c2e2 Recompile translation files 2012-04-26 15:54:54 +02:00
Badlop 5ed8959eba Update Italian translation (thanks to Luca Brivio) 2012-04-25 00:00:52 +02:00
Maxim Ignatenko 7623ebd327 mod_irc: Make use of MUC password 2012-04-24 15:21:46 +02:00
Badlop 522eb0fe9d Update PO files manually according to the English fix 2012-04-24 13:52:59 +02:00
Badlop 7dd171322d Fix English strings (thanks to Andreas van Cranenburgh) 2012-04-24 13:51:54 +02:00
Badlop 752652e56c Update German translation again (thanks to Nikolaus Polak) 2012-04-24 13:51:04 +02:00
Badlop 2582a478ab Update Portuguese-Brazil translation (thanks to Otávio Fernandes) 2012-04-23 09:58:03 +02:00
Badlop 52ff5de564 Update Polish translation (thanks to Zbyszek Żółkiewski) 2012-04-23 09:58:01 +02:00
Badlop ba793af8b7 Update Norwegian translation (thanks to Stian B. Barmen) 2012-04-23 09:57:59 +02:00
Badlop 3304ecd1f0 Update Catalan translation (thanks to Jan Kusanagi) 2012-04-23 09:57:56 +02:00
Badlop 4e0394cab3 Update Japanese translation (thanks to Mako N) 2012-04-20 15:42:41 +02:00
Badlop eaa963a840 Update Greek translation (thanks to James Iakovos Mandelis) 2012-04-20 15:42:38 +02:00
Evgeniy Khramtsov 31c13cc1c8 Remove useless mnesia call 2012-04-20 16:52:33 +10:00
Badlop 310aa7a00d Update Czech translation (thanks to Jan Pinkas) 2012-04-18 11:13:36 +02:00
Badlop fafd605d4d Update Chinese translation (thanks to Shelley Shyan) 2012-04-18 10:13:34 +02:00
Badlop 078f3583f0 Update Turkish translation (thanks to Doruk Fisek) 2012-04-18 10:13:15 +02:00
Badlop 0b337329ba Update Russian translation (thanks to Evgeniy Khramtsov) 2012-04-18 10:12:47 +02:00
Badlop f5df63554f Update Dutch translation (thanks to Andreas van Cranenburgh) 2012-04-18 10:12:22 +02:00
Badlop 46c4f46451 Update Esperanto translation (thanks to Andreas van Cranenburgh) 2012-04-18 10:12:09 +02:00
Badlop e034864c12 Update German translation (thanks to Nikolaus Polak) 2012-04-18 10:11:36 +02:00
Badlop 91f38cc849 Extract new strings 2012-04-18 10:08:30 +02:00
Evgeniy Khramtsov e616d2686f Perform user part substitution in ldap_rfilter (EJAB-1555) 2012-04-17 17:19:53 +10:00
Badlop 5a09d671ab Photos from LDAP not displayed in some clients, lacking TYPE (thanks to Alex Crycheck)(EJAB-1554) 2012-04-16 12:25:14 +02:00
Badlop 58d49d2867 Update Spanish translation 2012-04-15 00:21:22 +02:00
Badlop 8bb58ba3c3 Extract new strings 2012-04-15 00:21:15 +02:00
Badlop 017ce4e092 Fix translation script to use ejabberd_regexp (EJAB-921) 2012-04-15 00:21:10 +02:00
Badlop 49859683b0 Document how to provide a long announcement (EJAB-1553) 2012-04-14 23:29:55 +02:00
Badlop 169b83b36d Handle the scenario of disabled mod_muc (EJAB-1553) 2012-04-14 23:29:30 +02:00
Evgeniy Khramtsov 86435ba9aa ODBC support for mod_blocking 2012-04-12 14:22:56 +10:00
Paweł Chmielowski 431c34709c Make Safari happy use value from Host in WebSocket-Location header
Safari aborts connection if WebSocket-Location contains port number when
Host didn't have it, this change uses value sent by browser directly
instead of making in manually.
2012-04-11 18:12:36 +02:00
Paweł Chmielowski cf6d67ceed Always normalize case of http header names and use that fact in websocket handler
Native http parser code don't normalize header names when name is 19 or
more characters long. In websocket header module headers like that are
used, by having those headers in consistent form, code for finding
header with mixed case can be dropped.
2012-04-11 17:59:57 +02:00
Paweł Chmielowski e2d6bc95a4 Parse and encode https header names like native http parser does
This code adds case normalization step to https headers parsing, making
it correctly use atoms for some special header no matter how upper/lower
case letters are used in input string
2012-04-11 17:28:18 +02:00
Paweł Chmielowski ef0cf5d3d7 Parse and encode https header names like native http parser does
This code adds case normalization step to https headers parsing, making
it correctly use atoms for some special header no matter how upper/lower
case letters are used in input string
2012-04-11 17:24:36 +02:00
Christophe Romain 06f570f4ff return user affiliation for a specified node (thanks to Karim Gemayel) (EJAB-1294) 2012-04-11 16:50:36 +02:00
Badlop 730dfe8fc7 Add comments about Dialyzer warnings 2012-04-11 16:34:03 +02:00
Paweł Chmielowski e99ecf6d06 Fix websocket on Safari 2012-04-11 16:07:35 +02:00
Paweł Chmielowski 83c7da3831 Handle all draft-hybi handshake in this same way 2012-04-11 16:07:29 +02:00
Paweł Chmielowski 8dc4dd7f3b Add support for newer websocket versions 2012-04-11 16:07:22 +02:00
Paweł Chmielowski 66b7caafe0 Don't use binary:match to extract lines from binaries
This was added in R13B3, lets roll our own implementation to make sure it
works on older erlang versions.
2012-04-11 16:04:05 +02:00
Paweł Chmielowski 7c0b2f5425 Parse correctly https request split into multiple packets
This fixes case when SockMod:recv() calls returns only part of first line
of http request (GET/POST/OPTION/HEAD line). Before that change request
like that (and if keep-alive was active, all further request) were dropped.

This fixes EJAB-1537.
2012-04-11 16:04:05 +02:00
Paweł Chmielowski 4645885180 Properly handle HEAD request in mod_http_bind (this fixes EJAB-1538) 2012-04-11 16:01:14 +02:00
Paweł Chmielowski 472d046426 Make sure that res is initialized in all cases 2012-04-11 16:01:11 +02:00
Christophe Romain 613d175f37 fix record_to_string, do not format the result 2012-04-10 13:33:58 +02:00
Evgeniy Khramtsov 5619d39bd3 Add odbc modules to Makefile.win32 2012-04-09 14:53:15 +10:00
Evgeniy Khramtsov 959e0ff1c9 Remove obsoleted function call 2012-04-09 10:43:49 +10:00
Paweł Chmielowski 2c228e6414 Don't use binary:match to extract lines from binaries
This was added in R13B3, lets roll our own implementation to make sure it
works on older erlang versions.
2012-04-06 18:55:27 +02:00
Paweł Chmielowski 82468bff00 Fix makefile rules for building dll-s in Makefile.win32 files 2012-04-06 16:31:17 +02:00
Paweł Chmielowski 5f82846732 Parse correctly https request split into multiple packets
This fixes case when SockMod:recv() calls returns only part of first line
of http request (GET/POST/OPTION/HEAD line). Before that change request
like that (and if keep-alive was active, all further request) were dropped.

This fixes EJAB-1537.
2012-04-06 16:22:08 +02:00
Paweł Chmielowski 09c75af15c Make sure that res is initialized in all cases 2012-04-06 12:00:43 +02:00
Alexey Shchepin 91964b1aba Added missed tls:recv_data/2 2012-04-06 11:53:53 +02:00
Paweł Chmielowski af2e9169e6 Don't ignore Length parameter in tls:recv 2012-04-06 11:53:21 +02:00
Alexey Shchepin 4637e2c66b Avoid quadratic behavior in reading SSL data 2012-04-06 11:47:53 +02:00
Paweł Chmielowski 1f1a98d7ae Properly handle HEAD request in mod_http_bind (this fixes EJAB-1538) 2012-04-06 11:47:38 +02:00
Evgeniy Khramtsov cea23b055b Get rid of duplicated code 2012-04-06 12:31:29 +10:00
Evgeniy Khramtsov 41a0eae0bd ODBC support for mod_shared_roster 2012-04-04 20:37:43 +10:00
Evgeniy Khramtsov 5fab00011e ODBC support for mod_irc 2012-04-03 20:23:41 +10:00
Evgeniy Khramtsov ca5f028016 ODBC support for mod_vcard_xupdate 2012-04-02 15:21:54 +10:00
Evgeniy Khramtsov b43444f674 ODBC support for mod_announce 2012-04-02 14:49:13 +10:00
Evgeniy Khramtsov 866085c918 Add ODBC exporting function for privacy table 2012-04-02 12:39:23 +10:00
Evgeniy Khramtsov 585c5afd1a Add notes about mod_muc_odbc 2012-04-02 10:57:10 +10:00
Evgeniy Khramtsov 6ec5c7c4d8 Use proper module name 2012-03-31 22:56:51 +10:00
Evgeniy Khramtsov 6b3875814c ODBC support for mod_muc 2012-03-31 21:41:54 +10:00
Alexey Shchepin a63bbe8a23 Merge branch '2.2.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers.git into 2.2.x 2012-03-23 11:04:46 +02:00
Alexey Shchepin bc118986b7 Added missed tls:recv_data/2 2012-03-23 11:04:26 +02:00
Evgeniy Khramtsov 3a51c801e1 Change log level from informational to error 2012-03-19 18:52:20 +10:00
Badlop 983da9c887 Relax digest-uri handling (thanks to Daniel Willmann)(EJAB-1529)
This patch introduces a new config option - fqdn - to set the fully
qualified domain name of the host:
  {fqdn, "foo.example.com"}.
This fixes a problem with Pidgin not being able to log in on a server
that used SRV records.
2012-03-16 14:16:17 +01:00
Karim Gemayel 8d8dee5acf jlib.hrl : new macro ERR_POLICY_VIOLATION 2012-03-09 12:07:44 +01:00
Alexey Shchepin 92feebd0fa Merge branch '2.2.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers.git into 2.2.x 2012-03-07 16:20:25 +02:00
Alexey Shchepin 0b423eb287 Don't ignore Length parameter in tls:recv 2012-03-07 16:19:59 +02:00
Evgeniy Khramtsov f7b6446c74 Assume we have only one CPU when an auto-detection fails (EJAB-1516) 2012-02-29 00:45:45 +10:00
Evgeniy Khramtsov deb87f2dfa Cache caps timestamp before the IQ-request is done 2012-02-28 16:38:24 +10:00
Christophe Romain 7d7c739cb3 Merge remote-tracking branch 'mainline/2.1.x' into 2.2.x 2012-02-23 16:59:22 +01:00
Alexey Shchepin b1e2538488 Update copyright dates 2012-02-23 17:52:34 +02:00
Badlop 7b9e59d15d Recommend Erlang/OTP R13B04 and R14B04 2012-02-22 15:42:13 +01:00
Badlop 794d0bbe69 Fix Enlish in the Guide (thanks to Ludovic Bocquet) 2012-02-22 15:40:31 +01:00
Alexey Shchepin 60d422eb8e Avoid quadratic behavior in reading SSL data 2012-02-20 17:41:56 +02:00
Alexey Shchepin 52df4fa024 Merge branch '2.1.x' of git+ssh://git@gitorious.process-one.net/ejabberd/mainline.git into 2.2.x
Conflicts:
	src/configure
	src/ejabberd.app
	src/ejabberd_receiver.erl
	src/tls/tls_drv.c
	src/web/ejabberd_http.erl
2012-02-20 17:29:18 +02:00
Christophe Romain f7ffdfa15d Fix typo in xep number, bosh is xep0206 (thanks to Ludovic Bocquet) 2012-02-20 14:15:08 +01:00
Badlop 4900ac31a7 Add thanks to Ludovic Bocquet for past Guide contributions 2012-02-15 18:30:16 +01:00
Jerome Sautret 6ebebdd02d Improve session migration lock log message. 2012-02-15 17:23:30 +01:00
Badlop 112a18f966 Work also with some unicode strings in PgSQL (EJAB-1490) 2012-02-14 13:18:18 +01:00
Badlop 7d623d5eb4 Option default_host for handling HTTP requests with ambiguous Host (EJAB-1261) 2012-02-14 11:35:52 +01:00
Evgeniy Khramtsov 4819738e8f Receiver should not generate an exception 2012-02-14 17:03:08 +10:00
Evgeniy Khramtsov e30e7686e3 Add new options: migrate_timeout and rehash_timeout 2012-02-13 23:49:44 +10:00
Evgeniy Khramtsov 290432c0ee Change a loglevel of the set_lock message 2012-02-13 23:44:00 +10:00
Christophe Romain 6563267055 make remove_user match hometree_odbc plugin on odbc version 2012-02-08 21:12:20 +01:00
Alexey Shchepin ecf7b0282e Merge branch '2.2.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers.git into 2.2.x 2012-02-03 17:53:17 +02:00
Alexey Shchepin ea6e85d926 Use separate timer for C2S_OPEN_TIMEOUT 2012-02-03 17:53:05 +02:00
Jerome Sautret b4d107301d Added generic sha:to_hexlist/1 API function to convert sha results from
binary to hexadecimal string (TECH-1383).
2012-02-03 10:44:49 +01:00
Badlop 948318ca19 Fix the documentation about default value of captcha_cmd option 2012-02-01 00:09:51 +01:00
Evgeniy Khramtsov 89aa7baa5b Replace a single quote with double quotes in
an ODBC escape (thanks to Vladislav Chugunov)
2012-01-31 11:18:37 +10:00
Pablo Polvorin fead37d1c5 Avoid multiple disco#info request for caps.
Only send it when we receive the presence from the user,
if the user sends caps and we don't have it cached.
2012-01-27 16:08:28 -03:00
Badlop 95928a7cd4 http_bind webserver TLS fail on Chrome (thanks to Adam Langley)(EJAB-1530) 2012-01-19 13:21:25 +01:00
Alexey Shchepin 1ecc9ac48c Fixed ejabberd_http:get_line 2012-01-19 12:20:48 +02:00
Alexey Shchepin eaecb9b65c Fixed ejabberd_http:get_line 2012-01-19 12:20:02 +02:00
Badlop 288196c7e8 Foreign shared rosters items not pushed (thanks to Nathan Bruning)(EJAB-1509) 2012-01-04 19:21:31 +01:00
Evgeniy Khramtsov 2948cddebf Check a node of a receiver, not a monitor.
This should fix the previous commit (EJABS-1798)
2012-01-04 16:43:10 +10:00
Evgeniy Khramtsov 438dc57def Merge branch '2.2.x' of git+ssh://gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2012-01-03 11:26:32 +10:00
Evgeniy Khramtsov 4d64fbb0ac Also migrate C2S sessions with remote receivers (EJABS-1798) 2012-01-03 11:25:55 +10:00
Badlop 0283c6cdfe Revert "Update ejabberd version number to 2.1.10"
This reverts commit bcdae19141.
2011-12-31 20:40:04 +01:00
Alexey Shchepin d4e7b0cda0 mod_private.erl: misc errors cases fixes (thanks to Karim Gemayel) 2011-12-30 16:08:24 +02:00
Christophe Romain e0781d9217 merge from 2.1.10 and resolve conflicts 2011-12-30 11:33:34 +01:00
Badlop bcdae19141 Update ejabberd version number to 2.1.10 2011-12-23 12:27:30 +01:00
Badlop 6edbbded40 New release notes for 2.1.10 2011-12-23 12:25:50 +01:00
Badlop 684cac274d Support undefinition of ssl:seed in R15B 2011-12-23 12:19:38 +01:00
Badlop ce7b008b8f Use the regexp frontend module (EJAB-921) 2011-12-23 11:33:33 +01:00
Alexey Shchepin a3c58f2896 Always allow packets from user's server and bare jid in mod_privacy* 2011-12-22 16:37:47 +02:00
Alexey Shchepin f04fe5f743 Always allow packets from user's server and bare jid in mod_privacy* 2011-12-22 16:35:56 +02:00
Alexey Shchepin 3839f1055a Fixed the previous mod_blocking patch 2011-12-21 18:28:04 +02:00
Alexey Shchepin 66a5aff323 Fixed the previous mod_blocking patch 2011-12-21 18:27:24 +02:00
Alexey Shchepin 94350ddb3a Corrected mod_blocking hooks return value, activate "Blocked Contacts" privacy list after it is changed 2011-12-21 16:25:01 +02:00
Alexey Shchepin 5746c08f72 Corrected mod_blocking hooks return value, activate "Blocked Contacts" privacy list after it is changed 2011-12-21 16:20:59 +02:00
Badlop 919cdc27db Fix update with stripped beams (thanks to Jose M Herrero)(EJAB-1520) 2011-12-21 12:58:58 +01:00
Badlop 2029e39299 Support Erlang/OTP R15B driver (EJAB-1521) 2011-12-21 12:15:21 +01:00
Alexey Shchepin 39acf823ef Ignore CDATA ping while not in session_established state 2011-12-21 09:40:30 +02:00
Evgeniy Khramtsov 2ea9e6ed59 New ejabberd command: migrate
Example usage:
$ ejabberdctl migrate 60
2011-12-21 14:56:35 +10:00
Evgeniy Khramtsov 707bb0a321 Replace regexp with ejabberd_regexp 2011-12-19 16:10:48 +10:00
Evgeniy Khramtsov 298a4a3acf Get rid of +driver option because it is incompatible with R15B 2011-12-19 16:01:04 +10:00
Evgeniy Khramtsov 21c75ebce5 Process "xmlns:xmpp" and "xmlns:stream" correctly (thanks to Pawel) 2011-12-16 20:10:44 +10:00
Badlop 262157c88d Preliminary support for groupname@vhost in Displayed Groups (EJAB-506) 2011-12-15 17:27:28 +01:00
Badlop 37107af7b4 Fix command "update" to return response in the expected format 2011-12-08 19:39:36 +01:00
Badlop 13a9ca65a4 Don't reveal invitee's resource when room informs invitor 2011-12-08 16:35:31 +01:00
Badlop d3369c83e7 Add callback function print_state/1 for behavior p1_fsm 2011-12-08 12:50:40 +01:00
Badlop 48308042b6 Use the regexp frontend module (EJAB-921) 2011-12-08 12:40:04 +01:00
Badlop d30ad8ba28 Frontend module to Re and Regexp (EJAB-921) 2011-12-08 12:39:58 +01:00
Pablo Polvorin cf973f27bb Prevent overload of incomming s2s connections
Three changes were introduced:

1) ejabberd_s2s_in now uses p1_fsm instead of gen_fsm.  And uses
   the {max_queue, N} option to kill the process if its input
   queue grows too much.
2) If a ejabberd_s2s_in process is overload and killed, the server
   that originated that connection is not allowed to connect back
   to us for X seconds (set to 60seconds on the source)
3) The list of blocked (both statically and dynamically by the above
   method) host is now also checked for hosts authenticating by
   starttls+sasl. Previusly it was only used during dialback.
2011-12-02 15:30:20 -03:00
Pablo Polvorin 87df27109a Fix bug on s2s shaper when TLS is used
The shaper was not enabled if the remote server authenticates
using a certificate instead of dialback.
2011-12-01 13:16:21 -03:00
Pablo Polvorin 32e0a88edc Fix bug on s2s shaper when TLS is used
The shaper was not enabled if the remote server authenticates
using a certificate instead of dialback.
2011-12-01 13:00:52 -03:00
Alexey Shchepin bd91e2da16 Handle invalid input in ejabberd_websocket 2011-12-01 15:43:56 +02:00
Christophe Romain 89e4e822bf add hooks for node creation/deletion (EJAB-1470) 2011-11-29 14:13:13 +01:00
Badlop b89d4c7476 Use httpc instead of the deprecated http 2011-11-26 17:20:06 +01:00
Badlop ee968b5573 Fix error in mod_vcard when lowercasing some vjud search result fields (EJAB-1490) 2011-11-26 17:08:17 +01:00
Badlop 1f97740cfa Avoid a possible race condition 2011-11-26 17:03:24 +01:00
Christophe Romain f3d24b6a07 Revert "added optimizations from BBC" (wrong upstream)
This reverts commit d1377da151.
2011-11-23 15:07:02 +01:00
Christophe Romain d1377da151 added optimizations from BBC 2011-11-23 15:04:24 +01:00
Badlop 07cfc000ea Comment section 6.3.1 because it has no content at all 2011-11-15 16:46:00 +01:00
Pablo Polvorin d471be26cf Fix typo 2011-11-10 15:08:55 -03:00
Pablo Polvorin 31f6a9e66e Add command to persist recent MUC messages (EJABS-1785)
Example:
$ejabberdctl persist_recent_messages
Host 'localhost' , 4 messages persisted in 12 rooms
2011-11-10 12:54:11 -03:00
Pablo Polvorin d736c47649 Do not delete persistent MUC messages on restart (EJABS-1785)
Otherwise, if the server crash (not properly stopped), all recent
messages are lost.  In this case, it is better to at least keep
the outdated ones (and miss the new ones that were not saved to DB).
2011-11-10 11:07:34 -03:00
Evgeniy Khramtsov 944791e888 Fix presence problem after first unavailable (thanks to Christopher Faulet) (EJAB-1466) 2011-11-09 15:09:02 +10:00
Badlop 0656377165 Support to update modules in R14B04 and higher 2011-11-03 19:47:11 +01:00
Pablo Polvorin 0e4806820e Moderate on all nodes with one command (EJABS-1733)
ejabberdctl moderate_room_history now do a multicast to
moderate the room history on all nodes on the cluster
(as the room might be replicated on different nodes).
2011-10-26 09:48:21 -03:00
Badlop 1a419972d2 Fix previous commit about language name 2011-10-20 16:28:53 +02:00
Badlop 98b150e1a4 Fix extraction of language name from PO files 2011-10-20 15:45:17 +02:00
Pablo Polvorin 3850b91571 Store room to disc on creation if room is persistent
If the mod_muc configuration says that rooms are
persistent by default, store the room to disc once
it is created, as there are use cases where there are
no further config after room creation, and so
the write to disc was never triggered.
2011-10-18 13:45:02 -03:00
Evgeniy Khramtsov 7b0174a626 Replace dont_concat with max_concat option 2011-10-18 23:44:00 +10:00
Evgeniy Khramtsov 2270df86d9 Use queue instead of a list in order to avoid O(N) complexity 2011-10-18 15:34:11 +10:00
Pablo Polvorin a04131c6d7 Bugfix: room history and NO_TRANSIENT_SUPERVISORS option
Fix bug that prevent ejabberd to Save room history to DB
when using the NO_TRANSIENT_SUPERVISORS compiler option.
2011-10-14 11:30:34 +02:00
Evgeniy Khramtsov 96800e9b75 Get rid of useless mnesia transaction (EJAB-1502) 2011-10-14 16:57:51 +10:00
Evgeniy Khramtsov e5830253b9 New BOSH option: dont_concat (EJABS-1688) 2011-10-14 15:57:15 +10:00
Badlop c1d479f863 Set ejabberd version to 2.1.x 2011-10-13 17:56:19 +02:00
Evgeniy Khramtsov b7a07087d1 Fix merge conflict 2011-09-30 22:44:44 +10:00
Christophe Romain adf56dedf3 fix merge conflicts from 2.1.9 2011-09-30 14:28:40 +02:00
Badlop 4be7984a0e Update ejabberd version number to 2.1.9 2011-09-26 18:11:18 +02:00
Badlop 3b0b318730 New release notes for 2.1.9 2011-09-26 18:09:01 +02:00
Christophe Romain 6bfd8b8e9a update the pubsub_odbc patch 2011-09-26 16:35:31 +02:00
Evgeniy Khramtsov 39bc499b10 Fix instruction and error text 2011-09-26 20:00:43 +10:00
Evgeniy Khramtsov de4d4a4bbb Change "muc#role" field type to "hidden" 2011-09-26 19:54:55 +10:00
Evgeniy Khramtsov 8631dd14e9 Correct lists:keysearch output processing and fix dialyzer warning 2011-09-26 19:06:34 +10:00
Evgeniy Khramtsov e7d12f4b9e Code cleanup 2011-09-26 18:44:41 +10:00
Maxim Ignatenko f17a531e15 Use treap correctly 2011-09-26 11:16:30 +03:00
Maxim Ignatenko ff57c8a58c Apply patch from Evgeniy Khramtsov 2011-09-26 11:16:30 +03:00
Maxim Ignatenko 499b884c67 Use treap for keeping last voice request timestamps 2011-09-26 11:16:29 +03:00
Maxim Ignatenko 0c261fb903 Fix voice request/approvement detection and extract_jid_from_voice_approvement/1 2011-09-26 11:16:29 +03:00
Maxim Ignatenko 322263fd5c Fix typo 2011-09-26 11:16:29 +03:00
Maxim Ignatenko 845f5cabec Fix patterns in check_voice_request_fields/2 and check_voice_approvement_fields/2 2011-09-26 11:16:29 +03:00
Maxim Ignatenko f919349173 Use more pattern-matching 2011-09-26 11:16:29 +03:00
Maxim Ignatenko a91ae03dc6 Remove try/catch 2011-09-26 11:16:29 +03:00
Maxim Ignatenko faed7698c2 Use pattern matching in check_voice_request_fields/2 and check_voice_approvement_fields/2 2011-09-26 11:16:29 +03:00
Maxim Ignatenko eb8347f92b Reverse arguments order for timer:now_diff/2 2011-09-26 11:16:29 +03:00
Maxim Ignatenko c53ffe6dc5 Fix return value inconsistency in last_voice_request_time/2 2011-09-26 11:16:29 +03:00
Maxim Ignatenko 7c8eab4f43 Use jlib:parse_xdata_submit/1 in is_voice_request/1 and is_voice_approvement/1 2011-09-26 11:16:29 +03:00
Maxim Ignatenko b1d8168dd3 Use bare JID as key in state.last_voice_request_time 2011-09-26 11:16:28 +03:00
Maxim Ignatenko c196c1f5e5 Use lists:foreach instead of lists:map in send_voice_request/2 2011-09-26 11:16:28 +03:00
Maxim Ignatenko 604563af76 Remove needless time conversions 2011-09-26 11:16:28 +03:00
Maxim Ignatenko 6848d3affe Ignore any extra elements in voice approvement form submission 2011-09-26 11:16:28 +03:00
Maxim Ignatenko 6708914e99 Add 2 room config options
- Allow voice requests?
 - Minimum interval between voice requests
2011-09-26 11:16:28 +03:00
Maxim Ignatenko 5921f9c506 Simple rate control
Visitor allowed to send new voice request only after specified amount of
time (or after rejoining).
2011-09-26 11:16:28 +03:00
Maxim Ignatenko 6193ed63b1 Voice approvement support 2011-09-26 11:16:28 +03:00
Maxim Ignatenko 18dd0d08cb Implement basic voice request processing logic.
No rate control or configuration for now
2011-09-26 11:16:28 +03:00
Maxim Ignatenko 8dd6f128bf Implement voice approvement detection and remove some debug code 2011-09-26 11:16:28 +03:00
Maxim Ignatenko 04267930de Fix form instructions 2011-09-26 11:16:27 +03:00
Maxim Ignatenko d83716dece Use ejabberd_router:route/3 directly, instead of send_packet_to/3 2011-09-26 11:16:27 +03:00
Maxim Ignatenko c77358bdc1 Use exception handling in is_invitation/1 2011-09-26 11:16:27 +03:00
Maxim Ignatenko 44987479a5 Fix exception handling in is_voice_request/1 2011-09-26 11:16:27 +03:00
Maxim Ignatenko 30d89abf66 Implemented sending voice request and fixed some bugs 2011-09-26 11:16:27 +03:00
Maxim Ignatenko f175be6b78 Add function for detecting voice requests 2011-09-26 11:16:27 +03:00
Maxim Ignatenko 2a41ca0628 More correct dispatching of normal messages to conference room
is_invitation/1 function returns true if <x> element of message is
an invitation
2011-09-26 11:16:27 +03:00
Janusz Dziemidowicz c4f9a050c9 Decrease CPU usage caused by tls:send with large data.
Sending one large chunk of data with tls:send eats lots of
CPU power and blocks whole Erlang emulator. This is caused by the
fact that encrypted output is read from memory BIO in 1k chunks.
Memory BIO, after reading data, shifts the remaining part.
If large chunks of data (few MB) is sent and then read in 1k
chunks, then a _lot_ of shifting is performed eating CPU.

The solution is to simply allocate binary of the needed size
(amount of data in memory BIO can be retrieved with
BIO_ctrl_pending) and then issue only one read that reads the
whole data.
2011-09-25 00:23:31 +02:00
Pablo Polvorin 1babae067d Persist muc history on DB on server shutdown (EJABS-1733).
Ejabberd can be configured to store recent history of MUCs
to DB before shutdown. On restart, those messages are
retrieved from storage.

To enable it, set {persist_history, true} in mod_muc configuration,
ej:
  {mod_muc,      [
                  %%{host, "conference.@HOST@"},
                  {access, muc},
                  {access_create, muc_create},
                  {access_persistent, muc_create},
                  {access_admin, muc_admin},
                  {persist_history, true}
                 ]},

Messages are only stored on server shutdown, not on the fly.

$ejabberdctl stop
or
init:stop()
inside a debug console works.

Note: Only rooms configured as "persistent" will save messages
      (as other rooms doesn't survive server restart anyway).

Limitations: There is no option to store messages on mnesia, you *must*
     use a ODBC database.  Only tested with mysql.

Check odbc/mysql.sql  for the definition of the table "room_history",
the one needed for this.
2011-09-24 18:39:03 -03:00
Badlop 32ff6b56eb Fix mod_muc_log crash when first log entry is room being destroyed (EJAB-1499) 2011-09-23 17:00:50 +02:00
Christophe Romain 33c0ebb100 fix broken PEP after EJAB-1498 (thanks to Karim Gemayel) 2011-09-22 20:51:59 +02:00
Badlop cb9aecf35e ejabberdctl doesn't support parameters with blankspaces (EJAB-1458)
Revert "Escape output from ctlexec() to erl script (thanks to Dan Scott)(EJAB-1399)"

This reverts commit 6dea2d2307.
2011-09-22 16:18:04 +02:00
Christophe Romain d5b4d67858 Fix Denial of Service when user sends malformed publish stanza (thanks to Oleg Smirnov) (EJAB-1498) 2011-09-21 14:39:50 +02:00
Badlop 9f4ae07100 added svg mimetype to default content types (thanks to Markus Kohlhase) 2011-09-20 16:50:22 +02:00
Badlop 32fc36b17d Add support for @online@ to add_user_to_group 2011-09-20 16:44:51 +02:00
Pablo Polvorin 3ae4797848 Command to moderate short term muc history (part of EJABS-1733)
ejabberdctl moderate_room_history test@conference.domain.com nick

removes from short term storage all messages on
room test@conference.domain.com from nick "nick", so new user
joining the room don't get these ones.

Return the number of messages removed.
2011-09-19 15:43:20 -03:00
Evgeniy Khramtsov 33766a124d New option support: ldap_deref_aliases (EJAB-639) 2011-09-19 16:58:55 +10:00
Evgeniy Khramtsov ede8d57373 Fix dialyzer warnings 2011-09-17 10:48:52 +10:00
Evgeniy Khramtsov 86f0a9790d Do not crash on sync_send_all_state_event errors (part of EJABS-1708) 2011-09-16 16:44:24 +10:00
Evgeniy Khramtsov 54acf9bde4 Do not send <success/> twice when SCRAM-SHA-1 is used.
This is a merge bug actually
2011-09-15 19:24:41 +10:00
Evgeniy Khramtsov 2494e39c9e Fix dialyzer warnings 2011-09-15 16:59:45 +10:00
Evgeniy Khramtsov 8f27a697c0 Only use hash route-balancing when MUC is broadcasted 2011-09-15 08:52:22 +10:00
Badlop 07fdd089a0 No need to explicitly skip old useless tables, simply fix keep_tables 2011-09-14 12:15:53 +02:00
Evgeniy Khramtsov c9a712a16a Implement MUC rooms load distribution (TECH-1351).
Configuration example:
{domain_balancing, "conference.domain.com", broadcast}.
NOTE: both ejabberd_router and mod_muc use the option.
2011-09-14 17:43:07 +10:00
Evgeniy Khramtsov d6e81ac06b Add new domain_balancing criteria: broadcast 2011-09-14 17:40:06 +10:00
Evgeniy Khramtsov 228a587fc5 Fix previous commit 2011-09-09 12:40:07 +10:00
Evgeniy Khramtsov e432ff58f9 Avoid crash when performing admin action 2011-09-09 12:34:06 +10:00
Badlop b8969f68e0 Fixed support for multi-resource occupants (EJAB-305) 2011-09-08 16:10:38 +02:00
Badlop dbb2d1c229 Fix room config change logging, due to allow_private_messages_from_visitors 2011-09-08 12:34:25 +02:00
Badlop 609b7ed5c5 Support to import XML files without password-format attribute 2011-09-08 11:41:45 +02:00
Badlop 3eca0259f7 Clarification about system user of ejabberd.init 2011-09-06 13:39:43 +02:00
Badlop 20f3fc96c3 Fix SCRAM to support attributes which value has only one character 2011-09-05 23:21:38 +02:00
Badlop 76a174a007 Fix typo in the Guide about user_regexp 2011-09-05 19:24:05 +02:00
Evgeniy Khramtsov 0fde148a9f Fix dialyzer warnings 2011-09-05 22:00:50 +10:00
Evgeniy Khramtsov 6b0eb1f09d Reorganize the code to shut up the dialyzer 2011-09-05 21:27:31 +10:00
Evgeniy Khramtsov f3c90ee266 Get rid of useless check 2011-09-05 21:06:18 +10:00
Evgeniy Khramtsov 2482c9c5ed Merge set_affiliation/3 and set_affiliation_and_reason/4 into set_affiliation/4 2011-09-05 20:53:01 +10:00
Badlop da555fb908 Fix SCRAM auth of uppercase passwords (EJAB-1196) 2011-09-05 12:50:24 +02:00
Evgeniy Khramtsov 7ae7d6315f Remove useless clauses 2011-09-05 18:07:50 +10:00
Evgeniy Khramtsov eccb499346 Add some magic in order to shut up the dialyzer (because I do not want to replace the macro with a function) 2011-09-05 17:33:51 +10:00
Evgeniy Khramtsov 0c1796ea40 Fix potential case-clause crash 2011-09-05 17:27:15 +10:00
Evgeniy Khramtsov 826fab9999 Remove useless case clause 2011-09-05 17:12:45 +10:00
Evgeniy Khramtsov 3b95108a3a Replace VVALUEL macro with function in order to shut up the dialyzer 2011-09-05 17:09:36 +10:00
Evgeniy Khramtsov ab2a298ebf Merge branch '2.1.x' of git+ssh://gitorious.process-one.net/ejabberd/mainline into 2.1.x 2011-09-05 16:53:10 +10:00
Evgeniy Khramtsov 8b5fa88b6f Export do_client_version/3 in order to shut up the dialyzer 2011-09-05 16:52:36 +10:00
Evgeniy Khramtsov de712e5ccb Remove useless case clauses 2011-09-05 16:48:04 +10:00
Evgeniy Khramtsov ffdf5cb206 Remove useless case clause 2011-09-05 16:47:18 +10:00
Evgeniy Khramtsov f1a91108ef Correct some function clauses and value types 2011-09-05 16:31:58 +10:00
Evgeniy Khramtsov ffe063a0e9 Get rid of useless code 2011-09-05 15:59:30 +10:00
Evgeniy Khramtsov d74f02e367 ejabberd_auth:remove_user/2 always returns ok 2011-09-05 15:39:55 +10:00
Evgeniy Khramtsov 0da2107974 Fix some case clauses 2011-09-05 15:35:46 +10:00
Evgeniy Khramtsov 1994c8a174 Change argument of open_port/2 to string in order to shut up the dialyzer 2011-09-05 15:28:14 +10:00
Evgeniy Khramtsov 2434be4803 Get rid of useless function clause 2011-09-05 15:13:54 +10:00
Evgeniy Khramtsov b0b371d23a Get rid of useless function clause 2011-09-05 15:06:43 +10:00
Badlop d6fcee4faa Replace calls of OTP's Binary, since they would require R14 2011-09-04 14:56:56 +02:00
Badlop 41d028d101 First check occupant existence, later check the message 2011-09-04 13:28:32 +02:00
Christophe Romain 75fc431fb8 enable pubsub#deliver_notification checking (thanks to Karim Gemayel)(EJAB-1453) 2011-08-31 16:11:01 +02:00
Badlop 917d1be994 Explicitly skip useless ejabberd 2.0* mnesia tables when restoring backup
Reference:
http://www.ejabberd.im/node/4867
2011-08-29 12:36:49 +02:00
Christophe Romain 900b013658 typo fix (thanks to Artem Sh)(EJAB-1424) 2011-08-25 17:22:48 +02:00
Badlop dd772404c5 Merge branch '2.1.x' into 2.2.x
Conflicts:
	src/configure
	src/ejabberd.app
	src/ejabberd_auth_anonymous.erl
	src/ejabberd_c2s.erl
	src/ejabberd_sm.erl
2011-08-24 18:29:25 +02:00
Badlop 84486dcb2c Support multiple sessions per nick in muc_online_users, relevant for max_user_conferences (EJAB-305) 2011-08-23 21:53:41 +02:00
Badlop 9a190f3bc4 Send private messages to all the sessions with same nick (EJAB-305) 2011-08-23 21:53:30 +02:00
Badlop c76bbdf16f Don't send unavailable presence when leaving occupant has other nicks in the room (EJAB-305) 2011-08-23 21:53:19 +02:00
Badlop 24c5063b99 Allow multiple entry with same nick to MUC rooms (thanks to Magnus Henoch)(EJAB-305) 2011-08-23 21:52:20 +02:00
Pablo Polvorin bed5e80ef9 Merge commit '78f50c5' into 2.2.x 2011-08-17 15:23:16 -03:00
Badlop a0f8a2c3a4 New option resource_conflict defines server action (thanks to Lee Boynton)(EJAB-650) 2011-08-17 19:44:39 +02:00
Badlop 3edea6c806 Fix bug in scram is_alpha 2011-08-17 19:33:58 +02:00
Christophe Romain 9ccdb5d78b fix set_configure with odbc backend (thanks to Karim Gemayel) 2011-08-17 16:18:32 +02:00
Badlop abebabc487 Fix ODBC account counting (thanks to Artem Sh)(EJAB-1491) 2011-08-16 19:33:22 +02:00
Badlop 1ee6eae684 Fix and improve support for SCRAM auth method (EJAB-1196) 2011-08-16 00:26:49 +02:00
Badlop 24852b9be8 Indicate license and copyright (thanks to Stephen Röttger)(EJAB-1196) 2011-08-16 00:25:40 +02:00
Badlop e80b92b481 Preliminary patch for SASL SCRAM-SHA-1 (thanks to Stephen Röttger)(EJAB-1196) 2011-08-16 00:25:03 +02:00
Evgeniy Khramtsov 5bef1a8f77 Now it is possible to migrate C2S/BOSH/MUC sessions.
Example usage:
$ ejabberdctl stop_migrate 30
This will migrate c2s/bosh/muc processes smoothly within 30 seconds and stop ejabberd.

The commit also resolves EJABS-1661
2011-08-13 19:05:21 +10:00
Evgeniy Khramtsov 4f1637fa40 Implement BOSH session migration 2011-08-12 23:48:39 +10:00
Pablo Polvorin 573a84b2ec handle case when roster version on DB is enabled but version is not found.
Thanks Evgeniy.
2011-08-05 12:21:24 -03:00
Evgeniy Khramtsov 796cb6634b Get rid of sync call in send/2, process send_xml/2 failure gracefully 2011-08-05 18:10:56 +10:00
Evgeniy Khramtsov bb5480756a Get rid of "ip" state value 2011-08-05 18:04:01 +10:00
Evgeniy Khramtsov edb030f49a Get rid of "socket" state value 2011-08-05 17:58:02 +10:00
Evgeniy Khramtsov 0ed4ceebea Complete API functions 2011-08-05 17:52:49 +10:00
Evgeniy Khramtsov 31f7eadfca Use ?GEN_FSM macro whenever possible 2011-08-05 17:02:47 +10:00
Evgeniy Khramtsov 1c72c45404 Add shaper support 2011-08-05 15:53:57 +10:00
Badlop 75f8e174dc Add comment about ping requests sent even to non-supporting clients 2011-08-04 18:29:13 +02:00
Evgeniy Khramtsov f8fd9969e1 Return valid "inactivity" in session creation response 2011-07-28 16:39:17 +10:00
Evgeniy Khramtsov 8d09655a89 Reply on stream:start immediately if XMPP version is lower than 1.0 2011-07-28 16:31:10 +10:00
Evgeniy Khramtsov a06b627631 Fix try/catch branch 2011-07-28 16:04:02 +10:00
Badlop e690afc33b Verify username provided in registration web form 2011-07-27 12:25:51 +02:00
Badlop 493b664f19 Handle case when ejabberd_auth_* says the account exists 2011-07-27 11:44:35 +02:00
Evgeniy Khramtsov cb41c8ef80 Make work with buffers more abstract 2011-07-27 13:14:10 +10:00
Evgeniy Khramtsov d4cea0f78f Fix possible function clause 2011-07-27 12:12:44 +10:00
Evgeniy Khramtsov 4d20abd7b6 Process max_inactivity and max_pause config options 2011-07-26 21:44:35 +10:00
Evgeniy Khramtsov 351ad528f9 Prebind support 2011-07-26 19:27:54 +10:00
Evgeniy Khramtsov 006da5589e Fix copyright header 2011-07-26 16:24:21 +10:00
Evgeniy Khramtsov 5f32dd3959 Use HTTP reason phrase to describe terminal binding errors 2011-07-26 16:19:04 +10:00
Evgeniy Khramtsov a9269df2aa Fix inactivity timer processing 2011-07-26 15:15:17 +10:00
Evgeniy Khramtsov a7d82d6ecb New BOSH implementation 2011-07-25 23:53:33 +10:00
Evgeniy Khramtsov 5b10b58c9f Do not hash s2s connections 2011-07-22 19:48:22 +10:00
Christophe Romain ae24f7d787 send publish hook only on success, with broadcast stanza 2011-07-18 12:26:43 +02:00
Badlop 83014fb77b Include status 110 in presence to new occupant (EJAB-740) 2011-07-16 19:35:59 +02:00
Mickaël Rémond 1dfd9fd568 Merge branch '2.2.x' of git+ssh://gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-07-15 20:21:13 +02:00
Mickaël Rémond f655ab2ffc Allow to dump a specific user session 2011-07-15 20:20:56 +02:00
Badlop 1a4722e909 Fix typo in modules overview 2011-07-15 02:53:32 +02:00
Badlop 369fefd5a8 Use #roster record instead of direct tuple 2011-07-13 17:06:17 +02:00
Evgeniy Khramtsov cc0aa707c4 Document ldap_tls_cacertfile and ldap_tls_depth options (EJAB-1299) 2011-07-13 15:57:01 +10:00
Evgeniy Khramtsov 7e14b2d46a Add ldap_tls_cacertfile and ldap_tls_depth options (EJAB-1299) 2011-07-13 15:40:27 +10:00
Badlop 1e88c3f180 Room option to ignore private messages from visitors (thanks to Maxim Ignatenko) 2011-07-11 17:34:07 +02:00
Maxim Ignatenko 49ee637a5c One more fix 2011-07-11 12:55:38 +02:00
Maxim Ignatenko 71f085fec0 Improve spelling and fix some typos 2011-07-11 12:55:35 +02:00
Evgeniy Khramtsov 302294faec HTTP prebinding support (TECH-1327)
Example configuration:
{modules,
 [
  ...
  {mod_http_bind, [{prebind, true}]},
  ...
]}
2011-07-06 18:04:26 +10:00
Badlop caa84e2731 Fix reference to 'admin' ACL name (thanks to Samuel Wejeus)(EJAB-1476) 2011-07-05 16:33:06 +02:00
Alexey Shchepin b6a637c121 Minor mod_version bugfix 2011-07-03 19:03:56 +03:00
Alexey Shchepin 60009ece44 Optimized mod_roster_odbc:get_roster 2011-07-03 19:03:42 +03:00
Alexey Shchepin 2787df035c Merge branch '2.1.x' of git+ssh://git@gitorious.process-one.net/ejabberd/mainline.git into 2.1.x 2011-07-03 18:58:45 +03:00
Alexey Shchepin 32da749041 Minor mod_version bugfix 2011-07-03 18:58:07 +03:00
Juan Pablo Carlino 0cbd702419 is_user_in_group/3 must check if user belongs to given Group from Host specified on third argument.
* is_user_in_group/3 was checking if given user (passed on first parameter as
a bare jid) belonged to group of the server derived from this jid.
2011-07-01 12:51:52 -03:00
Alexey Shchepin 15f664af26 Optimized mod_roster_odbc:get_roster 2011-06-29 11:56:23 +03:00
Badlop d673ff5fad Support servers that reply error on any command before registration (thanks to Gelraen)
This makes mod_irc actually work with servers that reply with error
on any command before the registration procedure is completed.
Such servers, after NICK/USER they send PING and wait for client response.
In such situation they reply with message 451 to CODEPAGE command,
and mod_irc thinks that connection failed.

Example IRC server that works thanks to the patch: irc.mibbit.com
2011-06-28 23:04:12 +02:00
Badlop f112df2cfc Comment in the cfg file the correct node name used in ejabberdctl.template 2011-06-28 00:31:13 +02:00
Evgeniy Khramtsov 35644cf73c Match ldap_uidattr_format case-insensitively (EJAB-1449) 2011-06-23 15:14:15 +10:00
Evgeniy Khramtsov 6cc6c04c4a Log an error when an LDAP filter is incorrect (EJAB-1395) 2011-06-15 20:06:32 +10:00
Badlop b9e1bc34da Clarify in mod_register_web example what host to put in the URL 2011-06-11 16:15:37 +02:00
Evgeniy Khramtsov f4d0b201ad Escape iolist correctly when NIFs are disabled (EJAB-1462) 2011-06-11 23:28:10 +10:00
Badlop aff99097e7 Fix compilation in Windows (thanks to flyingwow99)
See http://www.ejabberd.im/node/4549
2011-06-07 13:27:00 +02:00
Jerome Sautret 18f6b02065 Added 2.1.8 release notes. 2011-06-06 11:18:10 +02:00
Badlop 33544569fb Fix crash when user publishes an item (EJAB-1457) 2011-06-01 23:22:25 +02:00
Badlop 529ab22a79 Recompile the Guide 2011-05-31 22:31:24 +02:00
Badlop 9f6afab09c Update ejabberd version number to 2.1.7 2011-05-31 22:31:22 +02:00
Badlop 2137c03da1 Recompile translations 2011-05-31 22:31:20 +02:00
Badlop 58fe9d3345 Add release_notes_2.1.7.txt 2011-05-31 22:30:57 +02:00
Badlop deb5e45bff Fix some typos in the Guide 2011-05-31 21:12:31 +02:00
Badlop bd1df027c6 Disable all entity expansions (thanks to Alexey Shchepin)(EJAB-1451) 2011-05-31 21:12:29 +02:00
Badlop 20290cab01 Update the 'configure' script with: aclocal; autoconf 2011-05-31 21:03:45 +02:00
Christophe Romain adcf2d5c4e Pubsub node maxitem forced to 0 if non persistent node (thanks to Karim Gemayel)(EJAB-1434) 2011-05-31 15:51:30 +02:00
Christophe Romain 8faafc5b0d apply filtered notification to PEP last items (thanks to karim Gemayel)(EJAB-1456) 2011-05-31 15:40:07 +02:00
Badlop 370093afde Fix minor English error 2011-05-31 12:27:45 +02:00
Badlop 32d3d1626b New ERL_EPMD_ADDRESS that works since Erlang/OTP R14B03 2011-05-31 12:26:44 +02:00
Badlop d4d28e038b Cut the string when calling halt/1 2011-05-30 17:11:32 +02:00
Evgeniy Khramtsov 41fad8956b Merge branch '2.1.x' into 2.2.x
Conflicts:
	src/ejabberd_c2s.erl
2011-05-30 23:29:41 +10:00
Evgeniy Khramtsov d6a076dae8 Under some circumstances the "uri" variable in StartNamespaceDeclHandler could be NULL. We check this now. 2011-05-30 22:39:56 +10:00
Badlop 2cacf21d51 Fix a recent commit about "Set script as executable" 2011-05-30 11:46:13 +02:00
Badlop 0874b93e7c Support anonymous accounts in Shared Roster @all@ directive (EJAB-1264)
With this change, logged anonymous accounts are considered to be registered.
2011-05-30 11:00:21 +02:00
Evgeniy Khramtsov f0c32433dc Fix race condition (EJABS-1677) 2011-05-30 10:00:24 +02:00
Badlop ba9094a089 Add link in the Backup page to the Guide 2011-05-29 20:51:33 +02:00
Badlop bfebcebeb7 Support XEP-0191 Simple Communications Blocking (thanks to Stephan Maka)(EJAB-695) 2011-05-27 11:47:22 +02:00
Eric Cestari 78f50c58bf Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-05-27 10:41:48 +02:00
Badlop 1c0b99e162 A user can query his own Last activity, even if not subscribed to oneself 2011-05-26 12:50:40 +02:00
Badlop f850bcbbc9 Several fixes and improvements in ejabberd.init.template
Changes:
* Set script as executable
* Add LSB tags and overrides, copied from Debian's ejabberd package
* Add chkconfig support (thanks to Ivan Martinez)(EJAB-1450)
* Don't use nounset, as that breaks when no argument is provided
* Add status command
2011-05-24 23:46:44 +02:00
Badlop 133b8d42a3 Disable all entity expansions (thanks to Alexey Shchepin)(EJAB-1451) 2011-05-24 13:12:28 +02:00
Evgeniy Khramtsov 7bc879c6f4 When checking captcha setup, try to generate image only when captcha is enabled in order to avoid logging of confusing error 2011-05-18 12:48:02 +10:00
Badlop f7d532f2f7 When module start fails during server start, stop erlang (EJAB-1446) 2011-05-16 22:33:59 +02:00
Christophe Romain 3785b3e951 add index migration code 2011-05-16 17:19:42 +02:00
Evgeniy Khramtsov 70e1545d3a Monitor only noconnection events 2011-05-16 18:01:51 +10:00
Alexey Shchepin 8aaf9bffa0 Resend queue to self before calling terminate 2011-05-13 14:53:04 +03:00
Eric Cestari d65b785f5d Closing properly the XMPP websocket process 2011-05-09 11:02:22 +02:00
Eric Cestari 9aabd59a1f Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-05-09 10:51:43 +02:00
Evgeniy Khramtsov 8806fdc1c2 Implement C2S redirection
- The feature is based on <see-other-host/> stream error, see RFC6120, 4.9.3.19
- To enable the feature you must set {redirect, true} in C2S listener section and set global "hostname" option on all nodes in cluster. The hostname must be string in the form as described in the RFC, for example: "foo.org", "foo.org:5222", "1.2.3.4", "[2001:41D0:1:A49b::1]:9222" and so on
2011-05-09 14:02:08 +10:00
Evgeniy Khramtsov dfbf32ecba Note that ejabberd works with CGP LDAP server 2011-05-07 10:32:52 +10:00
Christophe Romain 17abbf3d82 Owner can delete any items from its own node (EJAB-1445) 2011-05-06 13:58:49 +02:00
Evgeniy Khramtsov 1922bf21f0 Do not try to start TLS twice when front-end socket is used 2011-05-05 19:02:34 +10:00
Evgeniy Khramtsov dfbfd90f8c Take into consideration internal queue length when sorting processes queues 2011-05-05 16:08:28 +10:00
Evgeniy Khramtsov c98ddeb59f Merge branch '2.1.x' into 2.2.x
Conflicts:
	src/ejabberd_captcha.erl
	src/expat_erl.c
	src/mod_muc/mod_muc_room.erl
2011-05-04 00:04:10 +10:00
Evgeniy Khramtsov 613214da18 Do not add p1:pushed more than once 2011-05-03 23:01:05 +10:00
Evgeniy Khramtsov 84c1cf8033 Do not accept XML with undefined prefixes (EJAB-680) 2011-05-03 20:26:07 +10:00
Evgeniy Khramtsov 38693a670b Process ejabberd_sm messages using several dispatchers (EJABS-1653) 2011-05-02 22:37:33 +10:00
Badlop 5a0cfe7e2b Reorganize the push_item function, and handle version not_found (EJAB-1420) 2011-04-29 20:34:08 +02:00
Badlop 714dce84db No need to inform that XEP-0237 is optional; clarified in XEP version 1.2 2011-04-29 20:34:06 +02:00
Evgeniy Khramtsov a97a60a888 Fix previous merge 2011-04-29 20:53:15 +10:00
Badlop b807b21a59 Show configuration for HTTPS http_bind 2011-04-28 13:24:18 +02:00
Evgeniy Khramtsov 49365da481 Stringprep JID before get_node calculation 2011-04-27 15:22:25 +10:00
jabber 70e84021f2 Remove global lock if there are no nodes available 2011-04-27 15:17:54 +10:00
Evgeniy Khramtsov 24e033ac79 Initialize cluster before modules start 2011-04-27 15:15:49 +10:00
Evgeniy Khramtsov 658ab235ba Get rid of pg2 in cluster nodes 2011-04-27 15:15:19 +10:00
Evgeniy Khramtsov 2f16a160c0 Shadow unused variable 2011-04-27 15:07:18 +10:00
Evgeniy Khramtsov 4a2f62062e New migration procedure 2011-04-27 15:07:10 +10:00
Badlop 4f4c8eb61e mod_register Access now also controls account unregistrations 2011-04-26 22:55:04 +02:00
Badlop 3952888f94 Escape user input in mod_privacy_odbc (EJAB-1442) 2011-04-26 20:57:48 +02:00
Badlop 9b145385af Throw error when captcha fails at server start, not later at runtime 2011-04-26 13:59:08 +02:00
jabber 897b46c31d Do not decrease MUC admin's role/affiliation 2011-04-18 21:06:05 +10:00
Evgeniy Khramtsov 72299ab078 Add captcha_limit option to the example config 2011-04-18 16:16:10 +10:00
Evgeniy Khramtsov e7ab83b612 Remove forgotten -compile(export_all). 2011-04-18 16:09:05 +10:00
Evgeniy Khramtsov 07cf6f09b8 Implement CAPTCHA limit 2011-04-18 16:06:36 +10:00
Evgeniy Khramtsov 252ee6228b Fix syntax error 2011-04-18 15:50:24 +10:00
Evgeniy Khramtsov cf6264f507 CAPTCHA whitelist support 2011-04-18 15:47:06 +10:00
Badlop 4f1ececbd1 Try to improve support for roster_version in MSSQL (EJAB-1437) 2011-04-14 23:11:37 +02:00
Badlop 70bf5b4eda The responses to HEAD must have empty Body 2011-04-12 23:31:08 +02:00
Badlop f59a979f7c Support as read-only HTTP method not only GET, also HEAD 2011-04-12 23:13:46 +02:00
Badlop 05e3893f60 If extauth script crashes, ejabberd should restart it (EJAB-1428) 2011-04-11 21:27:19 +02:00
Badlop 7d7621c67c Support more captcha_host value formats (EJAB-1418) 2011-04-11 19:59:26 +02:00
Christophe Romain 33d4126290 merge with latest 2.1.x (pre 2.1.7) 2011-04-11 15:47:04 +02:00
Badlop 449e56ed52 Send jid attribute when occupant is banned (EJAB-1432) 2011-04-07 12:54:39 +02:00
Badlop aded966370 mod_ping uses iqdisc no_queue by default (thanks to Chris Moos)(EJAB-1435) 2011-04-07 12:08:31 +02:00
Badlop dac1f328d7 Clarify {iqdisc, no_queue} 2011-04-07 12:06:31 +02:00
Eric Cestari 87315e92a8 Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-04-07 11:47:20 +02:00
Badlop 90ea752046 Updated Japanese translation (thanks to Mako N) 2011-03-30 19:18:26 +02:00
Alexey Shchepin 494add4fd0 Updated rebind from the latest 2.2.x-applepush branch 2011-03-21 19:11:05 +02:00
Christophe Romain 3b7458bbc2 fir state initialization 2011-03-18 18:59:44 +01:00
Christophe Romain f05a4d1638 typo fix 2011-03-18 17:41:56 +01:00
Christophe Romain 75d2cbcb14 add nodeidx as index on pubsub_state and pubsub_item 2011-03-18 17:36:08 +01:00
Christophe Romain f9fa168d84 prevent from creating empty pubsub_subscription record 2011-03-18 15:17:13 +01:00
Badlop e4b3bd5005 Fix typo (thanks to Krzee) 2011-03-17 12:15:31 +01:00
Christophe Romain 5ad1d08b89 SSL sockets don't compute length of data (EJABS-1460) 2011-03-15 13:53:38 +01:00
Christophe Romain dcb068c7ad Correctly handle ssl requests split into multiple ip (EJABS-1460) 2011-03-15 13:52:35 +01:00
Christophe Romain 2d32d2f25e Enable workarounds for broken clients in tls layer (EJABS-1460) 2011-03-15 13:51:49 +01:00
Badlop abcbcd1f2c Update the changed string in the PO translation files 2011-03-13 18:34:55 +01:00
Badlop 18fd67b311 Change string in WebAdmin to reuse an existing one 2011-03-13 18:34:50 +01:00
Badlop b116957982 Fix bashism and make some lines similar to master branch (EJAB-1404) 2011-03-09 16:25:05 +01:00
Badlop a1f20a5bc0 If the port number isn't listener, then specify the protocol (EJAB-1418) 2011-03-03 11:38:00 +01:00
Badlop e0d14c3b8d captcha_host must have the port number to get protocol (EJAB-1418) 2011-03-03 00:02:43 +01:00
Badlop 1548a18b5e mod_irc must send presence unavailable to the departing occupant (EJAB-1417) 2011-03-01 22:33:11 +01:00
Badlop 339fa6e41b ejabberdctl needs space between INET_DIST_INTERFACE (thanks to Dale Chase)(EJAB-1416) 2011-02-28 18:40:45 +01:00
Badlop db0962804d Tweak pg2_backport.erl to work with Erlang older than R13A (EJAB-1349) 2011-02-22 23:44:45 +01:00
Badlop 677d8b1a29 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:34:15 +01:00
Badlop 850218c2df Forward old messages to newly spawned extauth process (thanks to Mika Seppänen)(EJAB-1385) 2011-02-21 16:13:41 +01:00
Badlop 1c89914382 New route_iq/5 accepting Timeout (thanks to Edwin Fine)(EJAB-1398)
Also new register_iq_response_handler/5
2011-02-21 13:44:39 +01:00
Eric Cestari 307e57a105 Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-02-17 12:25:15 +01:00
Badlop fe40a9c5f6 New DIST_USE_INTERFACE to restrict IP where erlang connections are listened (EJAB-1404) 2011-02-16 23:53:29 +01:00
Badlop bc0ae5a017 New Indonesian translation (thanks to Irfan Mahfudz Guntur)(EJAB-1407) 2011-02-16 13:46:20 +01:00
Christophe Romain 8e68e89816 Merge remote branch 'mainline/2.1.x' into 2.2.x 2011-02-15 10:48:27 +01:00
Christophe Romain 91ab7e029b fix empty pubsub payload check on odbc version 2011-02-14 16:45:49 +01:00
Christophe Romain c3a88c713b fix empty pubsub payload check 2011-02-14 16:41:32 +01:00
Eric Cestari 1564060c6c Closing properly the XMPP websocket process 2011-02-14 14:48:02 +01:00
Christophe Romain f39ccd73c5 Merge remote branch 'mainline/2.1.x' into 2.2.x 2011-02-14 13:54:06 +01:00
Christophe Romain fd52f2cb7d update copyright up to 2011 2011-02-14 13:50:55 +01:00
Badlop f91eb52890 Provide HTTPS URL in CAPTCHA form when listener has 'tls' option (EJAB-1406) 2011-02-14 13:11:21 +01:00
Badlop ca59a7f027 Fix typo in French translation 2011-02-11 20:19:59 +01:00
Evgeniy Khramtsov 01689bc6b9 Ack support (TECH-1261) 2011-02-11 13:42:55 +09:00
Badlop 6dea2d2307 Escape output from ctlexec() to erl script (thanks to Dan Scott)(EJAB-1399) 2011-02-09 16:38:54 +01:00
Christophe Romain 024a80d41f port previous pubsub changes to _odbc 2011-02-08 18:29:52 +01:00
Christophe Romain f485109c39 refactor pubsub broadcast to allow big optimization 2011-02-08 17:14:19 +01:00
Eric Cestari bde46896d6 Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-02-08 16:39:38 +01:00
Eric Cestari 0c30b012f7 Websocket: corrects bug of ejabberd dropping connection under message rate. 2011-02-08 16:39:13 +01:00
Badlop 650b2802b5 Remove erroneous comment (EJAB-645) 2011-02-03 17:23:09 +01:00
Badlop 6ddc66db9f Handle Tigase's unexpected version=1.0 when ejabberd doesn't announce it (EJAB-1379) 2011-01-31 19:43:28 +01:00
Badlop 14b39a0ee4 Merge remote branch 'origin/2.1.x' into 2.2.x
Conflicts:
	src/web/ejabberd_http_bind.erl
2011-01-31 18:57:13 +01:00
Badlop 792512459d mod_pres_counter prevents subscription flood (thanks to Ahmed Omar and Alexey Shchepin)(EJAB-1388) 2011-01-31 18:52:07 +01:00
Badlop 0359e345b0 Add to example config file access_from comment 2011-01-28 17:13:44 +01:00
Badlop a09c319357 Update exmpp version to 0.9.6 2011-01-28 12:46:09 +01:00
Badlop 36166aa40e Comment unused code 2011-01-28 12:11:34 +01:00
Badlop a25c9c5df3 Don't let presence-in privacy rule block a presence subscription using ODBC (EJAB-255) 2011-01-19 20:58:57 +01:00
Badlop 6e3a9ac4fd Fix delayed response of a timeout call was reused for next login (EJAB-1385) 2011-01-19 19:06:46 +01:00
Eric Cestari e380eee223 WebSocket support update
- added JSON encoding
- fix problem where session was not closed
- origin can now be decided by a custom module
2011-01-19 14:54:20 +01:00
Eric Cestari 1959546ff9 Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-01-19 14:49:45 +01:00
Christophe Romain 92f5509b35 improve check_start only matching node process 2011-01-18 13:36:46 +01:00
Badlop f4c74c147b Clarify more the expected content of welcome_message mod_register option 2011-01-17 23:46:08 +01:00
Badlop 0edda6150b Clarify error message when BOSH query is sent to non-running module 2011-01-12 21:22:43 +01:00
Christophe Romain 1a2e6b02ab sync with latest 2.1.6 befor tagging 2011-01-12 12:11:04 +01:00
Eric Cestari 56bf156b6f logging works on non-configured hosts.
In the log file, information should be logged under the default hostname.
2011-01-11 12:55:03 +01:00
Eric Cestari 5632901820 Fixed 2.1.6 compile error 2011-01-07 16:00:10 +01:00
Eric Cestari 92b6c12420 Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2011-01-07 15:54:00 +01:00
Eric Cestari 062d58026a mod_http_fileserver.erl will only conditionally gzip content by checking Accept-Encoding. 2011-01-07 15:28:26 +01:00
Eric Cestari 7ef85dddea Refactoring of ejabberd_http_fileserver.erl
- not a gen_server anymore. Should be way faster now (no more message passing between processes)
- configuration stored in mochiglobal
- support for etag
- support for gzip compression: 
	- static (if a foo.gz is in the same dir as requested foo, it will be served)
	- always (will always gzip, will use static is available)
	- false, don't gzip
- logfile is now in another module.
2011-01-07 15:12:51 +01:00
Mickaël Rémond 4a9e7f0a3a Use route instead of send_element to go through standard workflow Offline messages should thus be tracked for ack if needed (TEXTO-226).
Signed-off-by: Evgeniy Khramtsov <ekhramtsov@process-one.net>
2011-01-05 14:36:21 +01:00
Mickaël Rémond bd43505db9 Use route instead of send_element to go through standard workflow Offline messages should thus be tracked for ack if needed (TEXTO-226).
Signed-off-by: Evgeniy Khramtsov <ekhramtsov@process-one.net>
2011-01-04 15:21:10 +01:00
Christophe Romain cffe224d4a log and drop messages only from autofilter 2011-01-03 15:26:44 +01:00
Christophe Romain 15c27c9ddd fix bad jid issue 2011-01-03 09:52:12 +01:00
Badlop a2e1d2030a Keep the order of stanzas when BOSH sends several (EJAB-1374) 2010-12-30 13:42:53 +01:00
Evgeniy Khramtsov 149f8e2b45 Merge remote branch 'mainline-2.1.x/2.1.x' into 2.2.x
Conflicts:
	src/ejabberd.app
2010-12-28 21:17:01 +09:00
Evgeniy Khramtsov 4c8b034874 Change c2s state before offline messages resending 2010-12-28 21:09:15 +09:00
Eric Cestari 2ab31cb613 Merge branch '2.2.x-applepush' into 2.2.x
Without applepush
Conflicts:
	src/ejabberd_c2s.erl
	src/ejabberd_c2s.hrl
2010-12-23 15:30:14 +01:00
Alexey Shchepin b47c50145d Make jlib:ip_to_list safe to use 2010-12-20 19:29:05 +02:00
Badlop b9f4daca46 Revert branch name back to 2.1.x 2010-12-20 13:10:33 +01:00
Evgeniy Khramtsov 606c207e21 Make sure 'closed' event is correctly processed on every state 2010-12-17 17:26:20 +09:00
Evgeniy Khramtsov 03870f962c Fix user_receive_packet hook 2010-12-16 23:54:02 +09:00
Evgeniy Khramtsov 405e9b24b0 Fix get_sessions/2 function 2010-12-16 23:47:53 +09:00
W. Andrew Loe III d9c01e8ed9 Ignore OS X libraries. 2010-12-15 17:01:14 +01:00
Evgeniy Khramtsov 3c51ca06d5 Merge branch '2.2.x' into mergefix 2010-12-14 23:19:31 +09:00
Evgeniy Khramtsov 02cfb11a6d Merge branch '2.1.x' into mergefix
Conflicts:
	.gitignore
	src/ejabberd.app
	src/ejabberd_c2s.erl
	src/ejabberd_captcha.erl
	src/ejabberd_node_groups.erl
	src/mod_caps.erl
	src/web/ejabberd_http.erl
	src/web/ejabberd_http_bind.erl
2010-12-14 23:10:08 +09:00
Christophe Romain 4e875c7fb7 manual merge from 2.1.6 DO NOT MERGE, NEED TESTS 2010-12-13 23:44:53 +01:00
Badlop 3e9c9fc750 Remove Type and Spec, backport list comprehensions, so R12B-5 can compile 2010-12-13 12:17:28 +01:00
Badlop fbcb9bb154 Recompile the Guide 2010-12-13 11:15:19 +01:00
Badlop 6242fd2bb8 Update ejabberd version number to 2.1.6 2010-12-13 11:15:18 +01:00
Badlop 1c566057f8 Recompile translations 2010-12-13 11:15:16 +01:00
Badlop aa59d8f1f0 Add release notes for ejabberd 2.1.6 2010-12-13 11:15:14 +01:00
Badlop 6dd35923b0 Fix warning about unused variables 2010-12-13 11:14:39 +01:00
Badlop b9bbe19d4c Option to reject S2S connection if untrusted certificate (EJAB-464) 2010-12-11 02:29:53 +01:00
Badlop 44b2002504 Include From attribute in the stream header of outgoing S2S connections 2010-12-11 02:29:52 +01:00
Badlop faf422202f When TLS is required in s2s, add subelement to stream:features starttls 2010-12-11 02:29:50 +01:00
Badlop eb884c80d0 Add option to require encryption in S2S connections (EJAB-495) 2010-12-11 02:29:48 +01:00
Badlop b83dd9f954 Support for X-Forwarded-For HTTP header (EJAB-1356) 2010-12-07 16:47:55 +01:00
Christophe Romain fd828c3e9b update pubsub_odbc patch 2010-12-07 14:00:40 +01:00
Christophe Romain 79648ce853 add node attribute to pubsub subscribe event (EJAB-1361) 2010-12-07 13:51:10 +01:00
Badlop ddc94a8c96 Update Czech Translation (thanks to Lukáš Polívka) 2010-12-06 12:04:12 +01:00
Badlop aa413d63da Fix detection of mod_last at server start (EJAB-641) 2010-12-03 17:26:12 +01:00
Badlop 548be4cf3d Update example extauth script with tryregister, removeuser and removeuser3 (EJAB-641) 2010-12-03 17:26:10 +01:00
Alexey Shchepin 21f2817f40 Merge branch '2.2.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers.git into 2.2.x 2010-12-03 16:40:22 +02:00
Alexey Shchepin 31e4ccf78b Fixed "To" variable in ejabberd_c2s:roster_change 2010-12-03 16:39:04 +02:00
Evgeniy Khramtsov bfedd21c98 Disable error/1 auto-import (introduced in R14) 2010-12-03 23:38:18 +09:00
Pablo Polvorin 0e5b0b43fa Revert "Fix cyrsasl_digest RFC-2831 2.1.2.1 (EJAB-476)"
This reverts commit c890b17834.
This change made ejabberd more strict in protocol compliance, which breaks Psi 0.14 and other clients.
We must grant a grace period to client developers to fix their clients. So this isn't going to be included
in 2.1.x.
2010-12-03 11:12:43 -03:00
Badlop 8258f5940b Support PostgreSQL 9.0 (EJAB-1359)(thanks to Stephen Gibberd and Konstantin Nikiforov) 2010-12-03 12:43:05 +01:00
Pablo Polvorin c890b17834 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:55:06 -03:00
Christophe Romain f0a848ef45 fix pubsub cross domain eventing (EJAB-1340) 2010-12-02 13:56:45 +01:00
Evgeniy Khramtsov 9f3cdad3f7 Do not add "jabber:x:delay" more than once 2010-12-01 15:19:07 +02:00
Alexey Shchepin 931866ee33 Added ssl:connect timeout 2010-12-01 15:18:46 +02:00
Badlop 20d66e6736 Update Greek translation (thanks to James Iakovos Mandelis) 2010-12-01 13:28:20 +01:00
Evgeniy Khramtsov 731c9b86e0 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:24:51 +09:00
Badlop 955343f6aa When the Password attribute is missing in PIEFXIS file, don't check account auth. 2010-12-01 00:55:09 +01:00
Otavio Fernandes 1b73ac5118 Corrections on pt_BR translations. 2010-11-30 22:43:04 +01:00
Badlop 9ee8191939 Update Ukrainian translation (thanks to Ruslan Rakhmanin) 2010-11-30 22:43:02 +01:00
Christopher tofu Zorn f2231a2282 expose find_connection for routing in other modules (if needed) 2010-11-29 20:05:39 +01:00
Christopher tofu Zorn 3e24408710 add the ability to send raw xml packets over http bind 2010-11-29 20:05:37 +01:00
Badlop 3e67200d64 Update mod_register_web string in PO files 2010-11-29 19:35:18 +01:00
Badlop 6374b5b1e7 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:34:26 +01:00
Badlop 26ac75bdc9 Support negative part-hour TZ values (thanks to Alexander Zhukov)(EJAB-1301) 2010-11-29 14:36:09 +01:00
Alexey Shchepin 1d1496a667 Don't loop when there is nothing after a stream start 2010-11-26 17:08:00 +01:00
Andreas Köhler e34eebb5ad Correct domain_certfile tlsopts modifications for s2s connections (EJAB-1086)
* In ejabberd_s2s_out:wait_for_feature_request/2, the domain to use for
  looking up domain_certfile options is #state.myname and not
  #state.server

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

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

Fixes EJAB-1086.
2010-11-26 00:14:46 +01:00
Badlop 776930fa06 Update French translation (thanks to Nicolas Vérité) 2010-11-25 21:31:21 +01:00
Badlop 38af7c85a6 Update German translation (thanks to Nikolaus Polak) 2010-11-25 21:31:19 +01:00
Alexey Shchepin b3facf092a Don't loop when there is nothing after a stream start 2010-11-25 20:33:51 +02:00
Badlop 99b7a285d7 Update Japanese translation (thanks to Tsukasa Hamano) 2010-11-24 17:10:54 +01:00
Badlop 19e20f75d7 Update Chinese translation (thanks to Shelley Shyan) 2010-11-24 13:42:19 +01:00
Evgeniy Khramtsov b8d6aee1ce Merge branch 'caps' into 2.1.x
Conflicts:
	src/ejabberd_c2s.erl
2010-11-24 16:45:05 +09:00
Otavio Fernandes 48b768b5b0 Updating Brazilian Portuguese (pt_BR) translations for v2.1.6 2010-11-23 17:54:37 +01:00
Badlop bd604945c9 Update Polish translation (thanks to Zbyszek Żółkiewski) 2010-11-23 13:07:14 +01:00
Badlop 0a59ebe405 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:04:07 +01:00
Christophe Romain 32eaa01929 Revert "populate pubsub#roster_groups_allowed in node configuration options (EJAB-1344)"
This reverts commit dfaeb3bc88.
2010-11-22 11:15:04 +01:00
Badlop baf9363bdf Disapprove the use of R14A and R14B due to the rwlock bug. 2010-11-19 15:33:48 +01:00
Badlop 12aaa0125b Update Russian translation (thanks to Evgeniy Khramtsov) 2010-11-19 15:15:47 +01:00
Badlop cb7cd9abb8 Update translate files 2010-11-19 13:47:24 +01:00
Badlop ca701e1675 Update the Spanish translation 2010-11-19 13:45:32 +01:00
Badlop 9b88fd6646 Fix some English strings 2010-11-19 13:44:30 +01:00
Badlop 76ca7ae7f0 Translate mod_register_web to Ukrainian (thanks to Rain) 2010-11-19 00:23:40 +01:00
Evgeniy Khramtsov 1ab223568d Document mod_shared_roster_ldap (thanks to Marcin Owsiany) 2010-11-18 16:59:35 +09:00
Badlop 043effc3ce Translate mod_register_web to Spanish 2010-11-17 23:16:46 +01:00
Badlop 4fd1a8ba63 Translate mod_register_web to Russian (thanks to Rain) 2010-11-17 22:42:43 +01:00
Badlop 36303fb4be Update strings to translate 2010-11-17 22:36:56 +01:00
Badlop 62357b9589 Add extract_translations.beam to gitignore 2010-11-17 22:35:33 +01:00
Badlop 808029b868 Fix http-bind supervisor to support multiple vhosts (EJAB-1321) 2010-11-17 20:31:28 +01:00
Andreas Köhler cfd377b98e Fix R12B5 compatibility in ejabberd_http_bind.erl (EJAB-1343)
erlang:max/2 and :min/2 are new functions
2010-11-17 13:01:17 +01:00
Andreas Köhler 6eeb355a22 Use LFrom and LTo consistently in ejabberd_s2s_in:stream_established/2 (EJAB-1342) 2010-11-17 12:57:05 +01:00
Evgeniy Khramtsov a0e2e943b4 Do not start mod_proxy65 if it is unable to bind an address (EJAB-1336) 2010-11-17 18:13:19 +09:00
Evgeniy Khramtsov 78931d8efa Use MEDIUMTEXT type for vcard avatars in MySQL schema (EJAB-1252) 2010-11-17 17:36:51 +09:00
Evgeniy Khramtsov 0d2a8cd04f Do not print full error message when LDAP timeout occurs (EJAB-1324) 2010-11-17 17:14:47 +09:00
Evgeniy Khramtsov 97087eb3b9 Set SSL_MODE_RELEASE_BUFFERS mode when available (EJAB-1351) 2010-11-17 13:54:27 +09:00
Badlop 6eeef62ce4 Provide new, not old, affiliation in kick/ban presence with codes 321 and 301 2010-11-16 00:03:09 +01:00
Evgeniy Khramtsov 0ccff15599 Strip status when needed in presence-unavailable as well 2010-11-15 13:47:31 +09:00
Badlop 325fb8caef Fix typos in the example configuration file 2010-11-12 21:24:01 +01:00
Andreas Köhler 18ef908759 Before binding tcp ports, checks the socket type and listener options
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:46:18 +01:00
Andreas Köhler 1f1d2bd5f5 Bind listener ports early and start accepting connections later
It may happen that auth or rdbms client tcp connections bind a local
socket to a port number required by a configered listener. The ejabberd
applications fails to start up and needs to be restarted.

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

This patch binds tcp ports while initializing the ejabberd_listener
process, storing ListenSockets in an ets table. start_listeners/0 will
reuse these ports later on.
2010-11-10 23:46:16 +01:00
Andreas Köhler 0c484369c9 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:40:04 +01:00
Andreas Köhler 100f2e9a13 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:40:03 +01:00
Andreas Köhler 510fd8cf73 Before forwarding last activity requests to a user, check that the user's presence is visible for From
According to XEP-0012, 4. Online User Query, "if the requesting entity
is not authorized to view the user's presence information (normally via
a presence subscription as defined in XMPP IM), the user's server MUST
NOT deliver the IQ-get to an available resource but instead MUST return
a <forbidden/> error in response to the last activity request."

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

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

Also, add the atom in as parameter to a new argument Dir of
is_privacy_allow and extract from that function
privacy_check_packet(StateData, From, To, Packet, Dir) which runs the
privavcy check without converting allow/deny to true/false.
2010-11-10 15:39:57 +01:00
Andreas Köhler f96074057c 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:39:55 +01:00
Christophe Romain dfaeb3bc88 populate pubsub#roster_groups_allowed in node configuration options (thanks to Karim Gemayel)(EJAB-1344) 2010-11-10 15:15:03 +01:00
Christophe Romain c31f59e326 fix bad plugin order issue injected in previous patch (EJAB-1286) 2010-11-09 14:32:40 +01:00
Andreas Köhler 7c2b9eaf97 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:57 +01:00
Andreas Köhler 79f5251d69 Change max restart strategy of ejabberd_odbc_sup to handle some SQL timeouts. 2010-11-08 18:41:03 +01:00
Christophe Romain 917e8640c2 avoid node_call to break transaction (thanks to Karim Gemayel)(EJAB-1286) 2010-11-08 11:16:51 +01:00
Andreas Köhler c4bc0e7252 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:49:52 +01:00
Evgeniy Khramtsov 1f16e4783c Take care of xml:lang attribute in unauthenticated stanzas as well 2010-11-06 13:58:52 +09:00
Badlop 7f3a5066c6 New ip_access option restricts which IPs can register (thanks to Alexey Shchepin)(EJAB-915) 2010-11-05 19:33:52 +01:00
Badlop 6f3713a67d Disable mod_register_web in default config because by default captcha is disabled 2010-11-05 19:33:50 +01:00
Badlop abfb4a2841 Recompile the Guide 2010-11-05 18:21:20 +01:00
Badlop f672fd0824 Added mod_register_web: web page for account registration (EJAB-471) 2010-11-05 18:19:52 +01:00
Evgeniy Khramtsov 60b36beda8 Disable LRU caching algorithm for LDAP shared rosters 2010-11-05 17:01:18 +09:00
Evgeniy Khramtsov c4289095e0 Do not store long language tag to avoid possible DoS/flood attacks 2010-11-05 05:10:18 +09:00
Evgeniy Khramtsov 31757116fc LDAP shared roster support (thanks to Realloc and Marcin Owsiany) 2010-11-05 02:34:45 +09:00
Christophe Romain 70c1e1d0b1 enforce pubsub cleaner 2010-11-04 16:54:24 +01:00
Jonas Ådahl 2f68733708 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:52 +01:00
Badlop dccaff0544 Correct in the Guide the default mod_irc encoding
The default option value was last changed in  EJAB-302,
but the Guide was not properly updated yet.
2010-11-02 22:47:28 +01:00
Badlop 184ec38510 Implement the mod_irc option default_encoding, it was already documented
Related:
http://www.ejabberd.im/node/4270#comment-56609
http://www.ejabberd.im/node/4270#comment-56780
2010-11-02 22:40:08 +01:00
Badlop 2d59efb515 Fix crash in ejabberd_c2s when blacklist hook returned true (thanks to Jonas Ådahl)
Cause of the crash jlib:ip_to_list/1 only supports IP tuples using the
form {N1,N2,N3,N4} which is not the case when IPv6 is enabled.
2010-11-02 13:51:36 +01:00
Evgeniy Khramtsov 195d22d906 Merge branch '2.1.x' of git+ssh://gitorious.process-one.net/ejabberd/mainline into 2.1.x 2010-11-01 22:23:01 +09:00
Evgeniy Khramtsov ab80513755 Do not run set_last request inside a transaction 2010-11-01 22:22:41 +09:00
Badlop 8a116411bb Fix errors in EDoc comments 2010-10-28 18:48:27 +02:00
Badlop bd3889b6ec Include a Required xml element in the captcha field 2010-10-27 00:50:17 +02:00
Andreas Köhler 400fb69f15 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:32:15 +02:00
Andreas Köhler 9da45d40c7 Re-use the TLSSock argument in tls:send/2 (EJAB-1327) 2010-10-26 19:30:32 +02:00
Evgeniy Khramtsov 23db206ea1 * Add top-level instructions for x:data incompatible clients
* Remove trailing dot
2010-10-26 03:47:14 +10:00
Badlop 964b7b6b67 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-10-25 19:00:52 +02:00
Badlop 9c5f34794a Workaround for Psi's wrong Type in form submission 2010-10-25 18:58:31 +02:00
Badlop eca7588abf Recompile the guide.html 2010-10-25 18:57:54 +02:00
Badlop a15d583d4d Add CAPTCHA example configurations to cfg (EJAB-1262)(EJAB-1326) 2010-10-25 18:57:39 +02:00
Evgeniy Khramtsov e03c453c78 Provide image url in registration form when captcha is enabled 2010-10-25 23:36:31 +10:00
Alexey Shchepin aea394861d Added a protocol for a client to send the number of local unread messages
Conflicts:

	src/ejabberd_c2s.erl
2010-10-25 10:09:06 +03:00
Evgeniy Khramtsov 641dc7d695 Add password entropy check (EJAB-1326) 2010-10-24 17:17:30 +10:00
Evgeniy Khramtsov 0a1b0498a6 * Rename option captcha to captcha_protected for consistency.
* Document captcha_protected option
2010-10-24 15:45:42 +10:00
Evgeniy Khramtsov a6858a6ce4 Merge branch '2.1.x' of git+ssh://gitorious.process-one.net/ejabberd/mainline into 2.1.x 2010-10-24 15:30:37 +10:00
Evgeniy Khramtsov f4beeb1706 CAPTCHA IBR support (EJAB-1262) 2010-10-24 15:30:16 +10:00
Badlop 2e33904bb8 Don't check whether the contact is a locally registered account or not (EJABS-1550) 2010-10-24 00:48:57 +02:00
Badlop 75298b4c27 Improve example of outoging_s2s_options 2010-10-22 23:14:24 +02:00
Badlop 2d3bbd43d7 Allow add_rosteritem functions to work even when no know mod_roster is enabled 2010-10-21 21:07:07 +02:00
Christophe Romain 011464e6ac improve documentation (thanks to Karim Gemayel) 2010-10-21 11:14:24 +02:00
Badlop 6c0e9ef575 Fix return values of some functions. newgroups argument changed to groups. 2010-10-21 00:23:33 +02:00
Badlop ca62271a89 Apply Apollo fixes. More fixes. Improve command descriptions. 2010-10-20 16:41:27 +02:00
Evgeniy Khramtsov c96a1805e8 - get rid of rpc:call to avoid group leader inheritance
- do not log migration errors
- remove stopping node from cluster hashing explicitly
2010-10-20 17:26:01 +10:00
Badlop babff870a8 Remove custom ON command: send_notification/6 2010-10-19 17:17:55 +02:00
Badlop 5cd3de9cd7 Copy changes from Apollo's mod_xmlrpc to 2.2.x's mod_xmlrpc
Changes:
* link_contacts new arguments: group1::string, group2::string
* New method add_rosteritem_groups/5
* New method del_rosteritem_groups/5
* New method modify_rosteritem_groups/7
* get_roster change argument group::string -> groups::[string]
2010-10-19 16:55:24 +02:00
Badlop 437d8c6b7c Copy ejabberd_xmlrpc from ejabberd-modules SVN 2010-10-19 16:51:28 +02:00
Badlop 440eef74e9 Copy xmlrpc-1.13 source code 2010-10-19 16:51:24 +02:00
Christophe Romain c849552177 fix add_rosteritem issue (TECH-1181) 2010-10-19 15:19:41 +02:00
Alexey Shchepin 6134c67df4 Merge remote branch '2.2.x/2.2.x' into 2.2.x-applepush 2010-10-19 14:02:14 +03:00
Alexey Shchepin aa60140ba8 Revert "Merge ApplePush to 2.2.x"
This reverts commit b8b6fc0da5.

Conflicts:

	src/mod_applepush.erl
	src/mod_applepush_service.erl
2010-10-19 13:53:10 +03:00
Alexey Shchepin 59135cac6f Revert "ApplePush : previous merge missed timeout handler in c2s."
This reverts commit 40625b29f2.
2010-10-19 13:52:46 +03:00
Alexey Shchepin 8d69d4aaba Revert "Merge branch '2.1.x-applepush' of git@gitorious.process-one.net:+applepush/ejabberd/applepush.git into aplepush-test"
This reverts commit 00d8b2ac30, reversing
changes made to cac23c39c9.
2010-10-19 13:52:17 +03:00
Alexey Shchepin 426b7ca769 Revert "Merge branch '2.1.x-applepush' of git@gitorious.process-one.net:+applepush/ejabberd/applepush.git into 2.2.x"
This reverts commit ba326eb976, reversing
changes made to 00d8b2ac30.
2010-10-19 13:52:09 +03:00
Alexey Shchepin b61d16dd33 Revert "Merge remote branch 'applepush/2.1.x-applepush' into 2.2.x"
This reverts commit f76dcd0d48, reversing
changes made to 7da8d9e4e3.
2010-10-19 13:51:44 +03:00
Alexey Shchepin 807af3c08a Merge branch '2.2.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers.git into 2.2.x-applepush 2010-10-19 13:08:46 +03:00
Peter Lemenkov c53e8012b2 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:05:31 +02:00
Badlop fe04d57284 Fix bug in mod_pubsub in_subscription return value 2010-10-19 00:26:36 +02:00
Badlop d07424365d Fix bug in mod_pubsub in_subscription return value 2010-10-19 00:25:14 +02:00
Badlop 70fe2948b9 Revert "Remove some compiled files"
That removal was only intended for ejabberd master,
as it requires also changes in gitignore, Makefile.in and aclocal.m4

This reverts commit 179a0cf255.
2010-10-18 23:17:12 +02:00
Christophe Romain 0f3bd782c4 documentation update (thanks to Karim Gemayel) 2010-10-18 16:53:21 +02:00
Badlop 91cf9194d8 When privacy list denies local user's outgoing stanza, try to return error (EJAB-1320)
See:
http://xmpp.org/extensions/xep-0016.html#example-51
Example 51. Error: contact is blocked
2010-10-16 22:53:12 +02:00
Badlop e2dbad6242 Check privacy of outgoing IQ stanzas (EJAB-1320) 2010-10-16 22:53:10 +02:00
Badlop 84d4a1619b Check privacy of incoming IQ stanzas (EJAB-1320) 2010-10-16 22:53:08 +02:00
Badlop 16fae4d117 Add support to ejabberd_ctl to handle anonymous command arguments 2010-10-15 21:53:03 +02:00
Badlop 76f7548935 Rename aclocal.m4 to acinclude.m4 (thanks to Andreas Köhler)
Also fixed minor typos, added the compiled aclocal.m4 to gitignore.
As the 2.1.x branch includes the 'configure' script, it isn't needed
to document here how to build it, only in the master branch.

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:29:47 +02:00
Evgeniy Khramtsov a5166f3946 copied feature_inspect_packet hook from iphone svn repo 2010-10-15 23:13:29 +10:00
Badlop 2d08dcf11a Fix errors detected by Dialyzer 2010-10-15 13:17:32 +02:00
Badlop 7af47b9dbe Document ejabberd_loglevel using EDoc (EJAB-225) 2010-10-15 13:17:19 +02:00
Andreas Köhler 437da38342 Fix unused variable warning in ejabberd_loglevel 2010-10-15 13:15:52 +02:00
Andreas Köhler 801ee586b7 Add set_custom/2, clear_custom/0 and clear_custom/1 to ejabberd_loglevel 2010-10-15 13:15:50 +02:00
Andreas Köhler 6ff3fda14b Document new loglevel configuration form. 2010-10-15 13:15:49 +02:00
Andreas Köhler cfca2b502a 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:15:48 +02:00
Andreas Köhler e1a4ae8264 Use warning_msg event type for warning log level. 2010-10-15 13:15:46 +02:00
Andreas Köhler 19826858a4 Add warning message and report handlers to ejabberd_logger_h.erl. 2010-10-15 13:15:45 +02:00
Andreas Köhler 0c2677bc50 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:15:44 +02:00
Andreas Köhler d1c1902687 Use records for encoding static loglevel information. 2010-10-15 13:15:42 +02:00
Juan Pablo Carlino 11b00b92e9 merge from Team Leader 2.2 (r973) 2010-10-14 19:00:19 -03:00
Badlop a5230c46c2 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:15:40 +02:00
Badlop 95ce77f80d Include a gitignore file in the ejabberd git repository (EJAB-1312) 2010-10-14 19:53:31 +02:00
Alexey Shchepin c10e43f95f Improved behaviour on SSL handshake failure 2010-10-14 15:59:23 +03:00
Evgeniy Khramtsov eeffc77a1a ignore RPC timeout during migration 2010-10-14 20:29:45 +10:00
Evgeniy Khramtsov 254686ab46 fixes timeout calculation 2010-10-14 20:15:53 +10:00
Evgeniy Khramtsov 4a6fc46713 increase rehash timeout to 30 seconds; increase hashing points 2010-10-14 20:02:34 +10:00
Christophe Romain bde3bce1e7 remove non generic comment 2010-10-13 15:26:38 +02:00
Christophe Romain f76dcd0d48 Merge remote branch 'applepush/2.1.x-applepush' into 2.2.x 2010-10-13 12:36:04 +02:00
Christophe Romain 7da8d9e4e3 merge resolved against latest 2.1.x 2010-10-13 11:02:22 +02:00
Christophe Romain a93f4f7750 make http-bind restartable (thanks to Andreas Köhler)(EJAB-1318) 2010-10-13 10:54:12 +02:00
Evgeniy Khramtsov ac87749d55 add find_s2s_bridge hook 2010-10-11 18:40:57 +10:00
Evgeniy Khramtsov 3a7d02dbd3 fixes anonymous sessions lookup 2010-10-09 00:44:23 +10:00
Evgeniy Khramtsov 350af319bf fixes annoying crash with controller change 2010-10-08 19:26:49 +10:00
Evgeniy Khramtsov 50b747041f use one_queue IQ discipline by default 2010-10-05 21:28:45 +10:00
Evgeniy Khramtsov 36df8c9035 implement lifetime for broken hashes 2010-10-05 21:27:28 +10:00
Evgeniy Khramtsov 58a5ed9cdc change caps hook name 2010-10-03 16:04:29 +10:00
Evgeniy Khramtsov 5ea909885e call caps hook when caps is changed 2010-10-03 16:02:50 +10:00
Christophe Romain f81473fc65 fix licence issue and (c) to 2010 2010-09-28 13:36:16 +02:00
Evgeniy Khramtsov 1f2c9b7971 fixes typo in stop_connection/1 2010-09-28 14:20:02 +10:00
Evgeniy Khramtsov c13940e1de new CAPS processing 2010-09-28 14:18:57 +10:00
Christophe Romain b6dcd41225 added antiflood and filter modules from TeamLeader 2010-09-24 16:11:59 +02:00
Christophe Romain db2baa8f84 pubsub clean now cluster aware 2010-09-24 16:11:39 +02:00
Christophe Romain a894d25b1f s2s and session are no longer part of replication init of joincluster 2010-09-24 16:11:12 +02:00
Alexey Shchepin a93991bef2 Mark out-of-reception sessions in #session.info 2010-09-23 18:14:04 +03:00
Alexey Shchepin 7127d067c8 Revert the previous change, as priority is 0 by default 2010-09-23 18:05:56 +03:00
Alexey Shchepin ba326eb976 Merge branch '2.1.x-applepush' of git@gitorious.process-one.net:+applepush/ejabberd/applepush.git into 2.2.x 2010-09-23 16:22:03 +03:00
Alexey Shchepin fd50b2169b Insert "priority" element in out-of-reception presences 2010-09-23 16:18:53 +03:00
Alexey Shchepin 00d8b2ac30 Merge branch '2.1.x-applepush' of git@gitorious.process-one.net:+applepush/ejabberd/applepush.git into aplepush-test
Conflicts:
	src/ejabberd_c2s.erl
	src/mod_offline.erl
	src/mod_offline_odbc.erl
2010-09-22 22:38:32 +03:00
Alexey Shchepin cac23c39c9 Disable notifications for a user on "Invalid token" error 2010-09-22 22:19:36 +03:00
Alexey Shchepin a5813b798f Fixed "sender" log field 2010-09-22 22:19:17 +03:00
Evgeniy Khramtsov 8e5297f4c3 fixes default value for cache_life_time 2010-09-21 04:31:18 +10:00
Evgeniy Khramtsov 191cd2af3c different hooks should be called for session migration and session close 2010-09-21 03:17:52 +10:00
Alexey Shchepin f2cfee11de Disable notifications for a user on "Invalid token" error 2010-09-20 13:35:42 +03:00
Andreas Köhler 3278f019cb Add missing needdb check in mod_privacy, to enable blocking by group and subscription again. 2010-09-17 18:48:45 +02:00
Andreas Köhler e2c3925b7d 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 18:48:43 +02:00
Eric Cestari b0c79c57b0 Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2010-09-17 16:26:09 +02:00
Eric Cestari 8ea523889b [TECH-1151] Websockets are now handled in pure binary 2010-09-17 16:10:59 +02:00
Eric Cestari b44c462b0e [TECH-1151] IP now correctly stored 2010-09-17 14:49:04 +02:00
Eric Cestari 0987700a27 Rename protocol version 76 to 00 (new official name) 2010-09-17 14:24:24 +02:00
Eric Cestari ff4f052bb1 [TECH-1151] Origin and Protocol parameters are configurable and set. 2010-09-17 14:23:34 +02:00
Christophe Romain 100b821c1a added customer related tools 2010-09-17 09:11:03 +02:00
Christophe Romain 893c47a2e0 add ability to retreive only node names 2010-09-17 07:28:28 +02:00
Christophe Romain 694af69982 ejabberd.app now set to version 2.2.x 2010-09-17 06:46:40 +02:00
Christophe Romain c576f340f9 upgrade to lattest pubsub schema 2010-09-17 06:40:48 +02:00
Badlop 179a0cf255 Remove some compiled files 2010-09-17 00:14:13 +02:00
Eric Cestari a45ecb70ff [TECH-1511] debug traces reorganized 2010-09-16 15:08:53 +02:00
Christophe Romain df1ab9149f remove garbage configuration 2010-09-16 14:53:20 +02:00
Eric Cestari cb54444f00 Merge branch '2.2.x' into websockets 2010-09-16 14:44:44 +02:00
Eric Cestari c77e7fbb7d Merge branch '2.2.x' of gitorious.process-one.net:+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2010-09-16 14:38:52 +02:00
Eric Cestari 40625b29f2 ApplePush : previous merge missed timeout handler in c2s. 2010-09-16 14:37:27 +02:00
Christophe Romain 2624f3ba51 added pubsub helper modules 2010-09-16 14:31:08 +02:00
Eric Cestari 44832e12b3 Merge branch '2.2.x' into websockets 2010-09-16 11:07:12 +02:00
Eric Cestari caa8d0c411 Merge branch '2.2.x' of git+ssh://gitorious.process-one.net/~ecestari/ejabberd/ecestaris-maincustomers into 2.2.x 2010-09-16 10:54:45 +02:00
Eric Cestari 7e72d18292 Merge branch 'websockets' of git+ssh://gitorious.process-one.net/~ecestari/ejabberd/ecestaris-maincustomers into websockets 2010-09-15 17:21:20 +02:00
Eric Cestari b0a81778af [TECH-1511] preliminary XMPP support via websockets 2010-09-15 17:20:54 +02:00
Christophe Romain 652774a83c remove obsolete files 2010-09-15 13:51:46 +02:00
Alexey Shchepin 2aea503a2a Don't resend badge if there are no offline messages 2010-09-14 21:27:02 +02:00
Alexey Shchepin 0d8aacb3e7 Do not disable push on send error 2010-09-14 21:26:50 +02:00
Alexey Shchepin e6be70943f Added badge resending functions 2010-09-14 21:26:36 +02:00
Alexey Shchepin c86e4faba3 Fixed "sender" log field 2010-09-14 18:00:01 +03:00
Christophe Romain c3c06ccd1c Merge remote branch 'mainline/2.1.x' into 2.2.x 2010-09-14 16:59:46 +02:00
Eric Cestari 18b569a356 [TECH-1511] preliminary XMPP support via websockets 2010-09-13 17:26:24 +02:00
Alexey Shchepin 261acfce54 Don't resend badge if there are no offline messages 2010-09-13 15:46:39 +03:00
Eric Cestari c8567f1de2 [TECH-1511] Calls start() on handler to get a PID 2010-09-13 14:23:42 +02:00
Badlop 8a0ccfc401 Support timezone West of UTC (thanks to Edwin Fine)(EJAB-1301) 2010-09-13 12:06:13 +02:00
Eric Cestari 35a0e27d04 [TECH-1511] clean support for websockets.
Added handlers in configuration file
2010-09-13 12:04:52 +02:00
Alexey Shchepin 73f7b2ba38 Do not disable push on send error 2010-09-13 06:22:14 +03:00
Alexey Shchepin 8a693df6e6 Added badge resending functions 2010-09-13 06:19:38 +03:00
Eric Cestari c41bdea1f1 [TECH-1511] rough support for websockets 2010-09-10 17:14:58 +02:00
Eric Cestari cccbf7de12 [TECH-1151] websockets are properly detected. 2010-09-10 15:04:19 +02:00
Eric Cestari 660a2735f0 mod_keepalive added to repos 2010-09-10 14:11:56 +02:00
Eric Cestari 77136bccdf [TECH-1151] websocket initial code 2010-09-10 14:06:26 +02:00
Eric Cestari b8b6fc0da5 Merge ApplePush to 2.2.x 2010-09-09 17:00:18 +02:00
Eric Cestari 8ecf8d7e27 A few additions to .gitignore 2010-09-09 16:16:46 +02:00
Eric Cestari 4134edf8de Merge ApplePush to branch 2.2.x 2010-09-09 16:16:28 +02:00
Eric Cestari a77d53d738 [TECH-1068] Added missing catch in process function 2010-09-08 17:25:37 +02:00
Eric Cestari 49a3424a26 add *.so to .gitignore 2010-09-08 17:21:49 +02:00
Eric Cestari 92a60ff7fd flash hack merge fix from BBC 2010-09-08 17:03:49 +02:00
Eric Cestari 33c7d36a95 Merge branch '2.2.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2010-09-08 16:54:26 +02:00
Christophe Romain 6c7316cbdd apply flash hack patch 2010-09-08 16:51:06 +02:00
Eric Cestari 09da9eeb95 Merge branch '2.2.x' of git+ssh://git@gitorious.process-one.net/+ejabberd-developers/ejabberd/maincustomers into 2.2.x 2010-09-08 15:32:21 +02:00
Christophe Romain 76d4ba66b2 merge 2.1.x to 2.2.x 2010-09-08 15:30:52 +02:00
Eric Cestari f284fc3284 [TECH-1068] Atom feed is good enough. 2010-09-08 15:30:28 +02:00
Evgeniy Khramtsov c29b2fda99 cache lifetime should be converted in microseconds 2010-09-08 02:33:49 +10:00
Eric Cestari 86a59fb469 Implemented rough access_model access control. 2010-09-07 17:23:13 +02:00
Eric Cestari 31da259a75 HTTP Delete item 2010-09-07 16:42:12 +02:00
Eric Cestari 363711a370 New features :
- edit an item
- edit node configuration
2010-09-07 16:22:57 +02:00
Eric Cestari bf98fa0c01 Added node creation with configure form
Added deletion
Better behavior in case of a crash (returns 500)
2010-09-07 14:35:40 +02:00
Eric Cestari cd923838c3 Making progress on the Atom interface.
- GET items
- POST items
- GET nodes

HTTP error codes now are the ones XMPP returns.
2010-09-07 11:32:14 +02:00
Eric Cestari a22ebd3c49 Added support for GET a single item
and GET an atom feed of a node
2010-09-03 15:54:51 +02:00
Eric Cestari 353d16b8ef Post to pubsub using http POST :
{5280, ejabberd_http, [
			 http_poll, 
			 web_admin,
			 {request_handlers, [{["pshb"], pshb_http}]} % this should be added
			]}

 To post to a node the content of the file "sam.atom" on the "foo", on the localhost virtual host, using cstar@localhost
  curl -u cstar@localhost:encore  -i -X POST  http://localhost:5280/pshb/localhost/foo -d @sam.atom
2010-09-02 16:57:21 +02:00
Alexey Shchepin 6bb0dc12f1 Cut payload when it's too big 2010-09-02 13:41:18 +03:00
Alexey Shchepin ad00ec1518 Added xml:remove_subtags (thanks to Mickael Remond) 2010-09-02 13:40:45 +03:00
Evgeniy Khramtsov c75b7b2b12 Implemented dirty (non-atomic) functions; added copyright notice 2010-08-31 18:06:02 +10:00
Badlop c754c91ad1 Add IPv6 support to mod_irc (thanks to Matthias Schiffer)(EJAB-1298) 2010-08-30 23:25:02 +02:00
Christophe Romain c03140d4be fix merge issue 2010-08-30 11:14:57 +02:00
Evgeniy Khramtsov 6952324509 implemented backend-independed key-value cacheing table; applied to mod_caps.erl first 2010-08-30 14:02:47 +10:00
Badlop 4b5ef8f2ce Add mod_pubsub_odbc to list of ODBC modules (EJAB-1293) 2010-08-21 18:56:01 +02:00
Badlop d87fff1a4c Bugfix http-poll for correctly parsing binary (thanks to Peter Lemenkov) 2010-08-19 17:38:38 +02:00
Alexey Shchepin ea8aa1f25b clean p1:pushed tag (thanks to Mickael Remond) 2010-08-19 15:53:44 +03:00
Alexey Shchepin 8fe6ed011d Merge branch '2.1.x' of git://github.com/processone/ejabberd.git into applepush 2010-08-19 15:39:08 +03:00
Alexey Shchepin 35cde6787d Initial applepush git commit 2010-08-19 15:30:39 +03:00
Evgeniy Khramtsov 3024bb0cbf fixes ampersand escaping (EJAB-1258) 2010-08-19 16:28:31 +10:00
Evgeniy Khramtsov f8dd973373 fixes typo for table copy 2010-08-10 19:42:22 +10:00
Christophe Romain 23b28ec60f Merge remote branch 'mainline/2.1.x' into 2.2.x 2010-08-09 10:04:11 +02:00
Badlop 972440c2ca When user joins non-anonymous room, warn also in presence stanza (EJAB-310) 2010-08-07 20:48:36 +02:00
Badlop b14899d41a Update the 'configure' script 2010-08-07 19:42:56 +02:00
Evgeniy Khramtsov d2d8a09b4a Make MD2 autodetected (EJAB-1285) 2010-08-07 22:04:57 +10:00
Evgeniy Khramtsov 1ea09b09a2 Make xml.c correctly compiles on R14A (EJAB-1288) 2010-08-07 21:06:50 +10:00
Badlop 071c0a1afe Go back to the 2.1.x branch name 2010-08-05 20:39:55 +02:00
Badlop 4ed00c3d1f Fix detection of Erlang R11 and older (thanks to Mathias Ertl)(EJAB-1287) 2010-08-05 20:27:12 +02:00
Christophe Romain 59ae9bea76 added p1 modules 2010-08-05 14:23:26 +02:00
Christophe Romain 7be707f7bc Merge branch '2.1.x' into 2.2.x 2010-08-05 10:20:47 +02:00
Evgeniy Khramtsov c9ff370278 Loading ASN.1 driver explicitly to avoid races in LDAP (EJAB-1284) 2010-08-04 19:23:52 +10:00
Badlop 8ab8da82c4 Update ejabberd version number to 2.1.5 2010-08-02 17:38:36 +02:00
Badlop 4b6a42f539 New 2.1.5 release notes 2010-08-02 17:33:16 +02:00
Christophe Romain 8a251ccafe enforce disco features results (thanks to Karim)(EJAB-1033, EJAB-1228, EJAB-1238) 2010-08-02 17:07:23 +02:00
Badlop 550363cd52 Support parallel extauth script (thanks to Jesse Thompson)(EJAB-1280) 2010-07-30 20:33:03 +02:00
Badlop 367353100b Don't say v1.2, because that number is never increased and is confusing 2010-07-28 19:59:39 +02:00
Badlop 5113d28bb4 Return Registered element when account exists (thanks to PioneerMike) 2010-07-28 19:32:42 +02:00
Badlop c8df607173 Fix typo (thanks to Evgeniy Khramtsov) 2010-07-23 00:38:15 +02:00
Badlop c8033833f9 When logging s2s out connection attempt or success, log if TLS is used 2010-07-23 00:25:43 +02:00
Badlop cf4f0dbe6d The command Update now returns meaningful message and exit-status (EJAB-1237) 2010-07-22 16:32:55 +02:00
Christophe Romain 200815dcdb merge from latest 2.1.x 2010-07-22 12:01:44 +02:00
Christophe Romain 2d1c416daf Allow roster change from external component (TECH-1001) 2010-07-22 11:03:07 +02:00
Christophe Romain 3aaebe98f4 add ejabberdctl ability to check epmd names (TECH-1121) 2010-07-20 14:06:48 +02:00
Evgeniy Khramtsov 8c4884d665 Use driver allocators in iconv_erl.c for reflecting memory in erlang:memory(system) 2010-07-20 15:28:22 +10:00
Evgeniy Khramtsov 26f6eebaa9 Use driver allocators in ejabberd_zlib_drv.c for reflecting memory in erlang:memory(system) 2010-07-20 14:57:23 +10:00
Badlop ac84267b22 Describe what a user gets when he hits the registration_timeout limit 2010-07-19 12:08:02 +02:00
Christophe Romain 2ee7642816 add missing hrl 2010-07-16 18:57:00 +02:00
Christophe Romain bf63d09d80 Add etop command to ejabberdctl (TECH-1109) 2010-07-16 16:52:27 +02:00
Evgeniy Khramtsov 5030f35558 correct handling of SQL boolean types (EJAB-1275) 2010-07-14 21:23:21 +10:00
Evgeniy Khramtsov d7930d7f82 Use driver allocators in expat for reflecting memory in erlang:memory(system) 2010-07-14 14:19:16 +10:00
Christophe Romain 28c4c87956 Added catches to reset_stream calls to avoid errors during a race condition (thanks to Aleksey Shchepin) 2010-07-13 21:54:46 +02:00
Christophe Romain d0b7cd599b Make chat room destroy and create being sync_dirty to limit mnesia overload. (thanks to Mickael Remond) 2010-07-13 21:48:36 +02:00
Christophe Romain cc1839a250 Try forcing usage of cache for all MySQL sessions, and add correct timeout on odbc driver query. (thanks to Mickael Remond) 2010-07-13 19:06:12 +02:00
Christophe Romain 7d37715f8b 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 19:00:49 +02:00
Christophe Romain 091b4568d5 Add module to log informations when Mnesia is overloaded, and also supports rate limitation 2010-07-13 18:46:04 +02:00
Christophe Romain cc0503fd5e Add module to dump c2s connection 2010-07-13 18:45:49 +02:00
Christophe Romain 4862251f34 Add gitignore 2010-07-13 18:45:32 +02:00
Christophe Romain 987d796439 fix duplicated function 2010-07-13 12:48:52 +02:00
Christophe Romain 628571f8cf merge from ekhramtsov-ejabberd, which is latest 2.1.x with consistent hash 2010-07-13 12:04:30 +02:00
Badlop 42ddc297fe Fix my flock change from last friday 2010-07-12 18:53:16 +02:00
Badlop e82db8cc7f Remove ejabberd_debug because p1_prof provides similar and better features 2010-07-12 16:02:52 +02:00
Badlop 10d43c7cc6 Only compile and install p1_prof when: make debugtools=true 2010-07-12 16:02:41 +02:00
Badlop d539fd28c1 Recompile the 'configure' script 2010-07-12 15:18:15 +02:00
Badlop 12e00c57f9 When using OTP R14, use public_key library instead of old ssl (EJAB-953) 2010-07-12 13:57:07 +02:00
Badlop 0c95cf7e61 Mention missing modules in the overview table 2010-07-11 12:14:23 +02:00
Badlop d106f741d9 Some systems delete the lock dir; in such case don't use flock at all 2010-07-09 22:39:13 +02:00
Evgeniy Khramtsov 6c96157d1b Added functions to collect statistics about queues, memory, reductions etc. Several cleanups 2010-07-10 01:36:12 +10:00
Evgeniy Khramtsov a42a012f94 Added new ejabberd profiler 2010-07-05 13:43:44 +10:00
Badlop 7e90d6cf92 Fix print of command result that contains ~ (thanks to Tsukasa Hamano) 2010-07-03 00:42:54 +02:00
Badlop e19ac27803 Show some more room options in the log file 2010-07-02 15:19:54 +02:00
Badlop c100cbedd1 Document the mod_muc option captcha_protected 2010-07-02 13:08:33 +02:00
Evgeniy Khramtsov 4c2e7e38a1 Use ets insead of asking supervisor in ejabberd_odbc_sup:get_pids/1 (Thanks to Alexey Shchepin) 2010-07-02 20:31:42 +10:00
Badlop fa22b23435 Recompile the Guide and Configure 2010-07-01 17:03:36 +02:00
Badlop c3c23a04f6 Requirement of OpenSSL increased from 0.9.6 to 0.9.8 2010-07-01 17:01:13 +02:00
Badlop ae6545989e Fix typo in --enable-transient_supervisors 2010-07-01 16:59:26 +02:00
Badlop baeb3d076e Document the optional --enable-nif 2010-07-01 16:57:47 +02:00
Badlop 0ac5684bf0 Clarify that to use the optional --enable-nif, R13B04 is needed. 2010-07-01 16:51:26 +02:00
Evgeniy Khramtsov 715cc5ea3b New configure option: --enable-nif 2010-07-01 20:54:01 +10:00
Badlop d9e2931ed9 Fix privacy check when serving local Last (thanks to Brian Acton)(EJAB-1271) 2010-06-29 11:58:05 +02:00
Badlop 1531541331 Fix problem when FIREWALL_WINDOW options for erl kernel were used
http://www.ejabberd.im/node/4120
2010-06-28 13:17:55 +02:00
Badlop b7e02cc42e Inform client that SSL session caching is disabled (thanks to Pawel Chmielowski) 2010-06-25 18:33:49 +02:00
Badlop 3ab90c9d3a Don't ask for client certificate when using tls (EJAB-1267) 2010-06-25 18:33:46 +02:00
Badlop 1b7948f50a OpenSSL is required, not optional 2010-06-25 16:56:44 +02:00
Badlop fe23dbd76e When account is deleted, delete also member of stored shared rosters. 2010-06-24 00:02:16 +02:00
Evgeniy Khramtsov 21d2f4efab now admins are able to see private rooms in disco (EJAB-1269) 2010-06-23 17:44:35 +10:00
Evgeniy Khramtsov f66f049ef3 Added support for all hash functions required by XEP-0115 2010-06-22 03:10:41 +10:00
Evgeniy Khramtsov 49dd83e731 Added md2/1 support 2010-06-22 02:56:34 +10:00
Evgeniy Khramtsov 9cd2d5e0cf New OpenSSL functions wrapper: sha224/1, sha256/1, sha384/1, sha512/1 2010-06-22 02:30:16 +10:00
Badlop fab705dc13 Rebuilt the configure script with: autoconf 2010-06-16 16:05:45 +02:00
Peter Lemenkov a84f8bc9ef 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:05:07 +02:00
Peter Lemenkov 2477b735bf 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:05:07 +02:00
Peter Lemenkov 8db328af60 Install dev.html, and guide.pdf if it exists
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2010-06-16 16:05:07 +02:00
Christophe Romain bc2280be70 remove outdated and useless file, use ejabberdctl.template instead 2010-06-16 12:20:08 +02:00
Badlop a28aaa1fdd Log error when HTTP request has ambiguous Host header (EJAB-1261) 2010-06-16 11:33:17 +02:00
Badlop afa0f4d403 Fix for Erlang R12, that doesn't support: true andalso ok 2010-06-15 22:59:53 +02:00
Jerome Sautret 0e5b930b22 Discard queued requests that are too old (the caller has already got a timeout). 2010-06-11 16:35:45 +02:00
Badlop 7d8f8a7e99 Explain that 2 LDAP connections are established per vhost 2010-06-10 13:58:55 +02:00
Badlop a7924adee9 Fix typo in update_list command (EJAB-1237) 2010-06-07 15:58:16 +02:00
Badlop d4ec7a2f01 New optional BOSH connection attribute process-delay (EJAB-1257) 2010-06-07 13:44:55 +02:00
Badlop e0fab19345 Revert version number from 2.1.4 tag to 2.1.x branch 2010-06-04 11:26:42 +02:00
Evgeniy Khramtsov 4646a5dbb8 fixes wrong SQL escaping when --enable-full-xml is set 2010-06-04 13:31:34 +10:00
Badlop 1567592ac7 Update ejabberd version number to 2.1.4 2010-06-02 18:48:55 +02:00
Badlop 3b735c269c Remove duplicate item in release notes 2010-06-02 18:23:19 +02:00
Badlop 5bdef05f12 Add release notes for ejabberd 2.1.4 2010-06-02 17:33:35 +02:00
Badlop 077626c40a Clarify in the Guide that mssql configuration is similar to odbc 2010-06-02 17:10:48 +02:00
Christophe Romain c544384c83 sync last changes in pubsub_odbc patch 2010-06-02 16:46:02 +02:00
Christophe Romain d56522c8a0 final fix on created node notification (EJAB-1225) 2010-06-02 14:37:18 +02:00
Badlop b83e77ca21 Update the Norwegian translation (thanks to Stian B. Barmen) 2010-06-01 19:44:27 +02:00
Badlop 361400691d Recommend Erlang/OTP R12B-5 and R13B04 2010-06-01 15:45:00 +02:00
Badlop ba9247c530 Update the Slovak translation (thanks to Marek Bečka) 2010-05-31 00:27:58 +02:00
Badlop 91d22109c8 Update the Czech translation (thanks to Lukáš Polívka) 2010-05-28 18:46:08 +02:00
Badlop cb702a770d Update the Russian translation (thanks to Evgeniy Khramtsov) 2010-05-28 18:46:06 +02:00
Christophe Romain db059bdfaf fix error code when unsubscribing from a non-existent ODBC node (EJAB-1227) 2010-05-28 13:42:35 +02:00
Christophe Romain 2291a6afea fix error code when unsubscribing from a non-existent node (thanks to Karim Gemayel)(EJAB-1227) 2010-05-28 13:37:20 +02:00
Christophe Romain af7fe0c21e send created node notifications (EJAB-1225) 2010-05-28 13:34:05 +02:00
Christophe Romain 7ce3291603 fix jlib calls from previous patch 2010-05-28 12:33:11 +02:00
Christophe Romain 07e870271e make last_item_cache feature cluster aware (EJAB-1234) 2010-05-28 11:56:09 +02:00
Badlop a5f8aeb6da Handle error response from auth modules (thanks to Eric Liang) 2010-05-28 01:36:19 +02:00
Badlop 1777ecd15a 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:51:25 +02:00
Christopher tofu Zorn d4d45f3a50 remove the silly loop that isnt needed, this speeds up all requests by 100 milliseconds. 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-27 21:21:17 +02:00
Badlop 9900be3d68 Update the Portuguese Brazil translation (thanks to Otávio Fernandes) 2010-05-26 19:53:32 +02:00
Badlop b88372c313 Update the Ukrainian translation (thanks to Konstantin Khomoutov) 2010-05-26 19:53:29 +02:00
Badlop e4aab7f749 Add created_at column also to PostgreSQL schema (thanks to Mathias Ertl)(EJAB-1240) 2010-05-26 16:13:45 +02:00
Badlop 42cbd0c1c4 Update the Catalan translation (thanks to Jan Kusanagi) 2010-05-25 20:11:16 +02:00
Badlop 9318678e08 Mix the commands update_all/0 and update_module/1 into update/1 (EJAB-1237) 2010-05-25 20:01:04 +02:00
Badlop bd992bcb87 Update the Italian translation (thanks to Luca Brivio) 2010-05-25 12:18:16 +02:00
Badlop 01d2bcfd92 Update the Greek translation (thanks to James Iakovos Mandelis) 2010-05-24 20:44:23 +02:00
Badlop 0bfda4e628 New ejabberd commands to update modified modules (EJAB-1237) 2010-05-24 13:58:11 +02:00
Badlop a2f659a2c6 Only log when script errors are found 2010-05-24 13:58:10 +02:00
Badlop 9a04a60c7d Update the Polish translation (thanks to Zbyszek Żółkiewski) 2010-05-24 13:34:54 +02:00
Badlop 7238ab6f05 Update the Dutch translation (thanks to Andreas van Cranenburgh) 2010-05-24 11:10:41 +02:00
Badlop dd954ef1c2 Update the Esperanto translation (thanks to Andreas van Cranenburgh) 2010-05-24 11:10:30 +02:00
Badlop f1b8853339 Update the German translation (thanks to Nikolaus Polak) 2010-05-23 16:21:44 +02:00
Badlop 479a2adaae Recompile Japanese translation 2010-05-23 02:30:30 +02:00
Tsukasa Hamano dd3c939025 update ja.po 2010-05-23 02:30:21 +02:00
Badlop 767e7d65ef Update the French translation (thanks to Nicolas Vérité) 2010-05-23 02:29:44 +02:00
Badlop 5feb20afd0 Update the Chinese translation (thanks to Shelley Shyan) 2010-05-23 02:28:57 +02:00
Badlop 9038bbd3e7 Update the Spanish translation 2010-05-23 02:28:26 +02:00
Badlop 506fbbe7f7 Update translations 2010-05-20 21:12:36 +02:00
Christopher tofu Zorn 08f1f55e0c typo on exported function 2010-05-20 20:45:37 +02:00
Christopher tofu Zorn 5ea9a0ddb7 expose more functions so developers can implement prebinding methods 2010-05-20 20:32:07 +02:00
Christophe Romain d4e0fab06b fix EJAB-1233 on pubsub_odbc patch 2010-05-19 11:05:02 +02:00
Christophe Romain 217aaf78f9 prevent orphaned pubsub node (EJAB-1233) 2010-05-19 10:47:47 +02:00
Badlop 2ee788e0bf Fix English typos 2010-05-17 11:54:22 +02:00
Christophe Romain f0f4b2719c sync pubsub_odbc with latest code 2010-05-12 13:54:44 +02:00
Christophe Romain 406a31c8be Enforce pubsub#show_values subscription option (EJAB-1096)(thanks to Karim Gemayel) 2010-05-12 13:45:56 +02:00
Badlop c32332898b Show HTTP auth username and IP address in logs, not the password (EJAB-1231) 2010-05-12 10:27:47 +02:00
Badlop 4bbf6684b4 Don't show HTTP request in logs, because reveals password (EJAB-1231) 2010-05-10 23:23:31 +02:00
Badlop 9476d8a2c3 Optionally cache extauth users in mnesia (EJAB-641) 2010-05-10 16:42:54 +02:00
Badlop 6ac46c6171 Fix EDoc comment 2010-05-10 16:12:48 +02:00
Badlop 6ae8b9c4d6 Use a standard method to get a random seed (EJAB-1229) 2010-05-10 15:38:38 +02:00
Badlop 39119192a1 New option pam_userinfotype to provide username or JID (EJAB-652) 2010-05-10 15:14:49 +02:00
Badlop 25e4038623 Recompile the guide 2010-05-10 15:11:40 +02:00
Evgeniy Khramtsov f58d03c12e new option ldap_tls_verify is added (EJAB-1229) 2010-05-10 19:37:37 +10:00
Evgeniy Khramtsov 58590cf08d full support for XEP-0115 v1.5 (EJAB-1223) (EJAB-1189) 2010-05-08 02:32:57 +10:00
Christopher tofu Zorn cce57310b0 Change max inactivity from 30 to 120 seconds 2010-05-06 20:52:40 +02:00
Christopher tofu Zorn 516d369174 Use dirty_delete when removing the session.
There is no need for a transaction and has less overhead
2010-05-06 20:52:36 +02:00
Christophe Romain 7fc1207661 enforce pubsub#presence_based_delivery (EJAB-1221) (thanks to Karim Gemayel) 2010-05-05 15:42:49 +02:00
Badlop 951808658d Indicate explicitly what nodes are handled by mod_configure 2010-05-04 11:37:44 +02:00
Badlop cd9e1621f9 Add xml default content type (thanks to Aaron Winborn)(EJAB-1214) 2010-04-28 20:06:27 +02:00
Badlop 650966ce2c Minor fixes in listeners options list 2010-04-28 20:06:27 +02:00
Badlop 2a99af8cce Rename some JEP references to XEP 2010-04-28 20:06:27 +02:00
Badlop 3ba0061ada Reduce verbosity of log when captcha_cmd is checked but not configured. 2010-04-28 20:06:27 +02:00
Badlop 705c5b4c1c New Access rule webadmin_view for read-only (thanks to Oleg Palij)(EJAB-213) 2010-04-27 23:27:44 +02:00
Badlop 6ae1f62469 Don't store blocked messages in offline queue (thanks to Brian Acton)(EJAB-1224) 2010-04-27 13:30:00 +02:00
Badlop 1c00a9713d Automatic vcard avatar addition in presence (thanks to Igor Goryachev)(EJAB-208) 2010-04-27 12:33:56 +02:00
Badlop 5e7d8868c0 No need to handle IQ requests other than Get and Set 2010-04-22 20:19:42 +02:00
Emilio Bustos 55dbdf5dba Fixed Bugs handling Service Discovery to contacts.
Resolves [#EJAB-1207]
2010-04-22 10:29:20 -03:00
Badlop 2ff291899d Don't send error stanza as reply to error stanza (EJAB-930) 2010-04-20 20:31:42 +02:00
Badlop 2d375e0429 Recompile the Guide 2010-04-19 15:22:10 +02:00
Evgeniy Khramtsov 4669ae0a81 added notes about LDAP password change 2010-04-19 23:05:48 +10:00
Evgeniy Khramtsov c2362db03d allow inband password change (EJAB-199) 2010-04-19 20:57:24 +10:00
Evgeniy Khramtsov 1405e9d375 LDAP extensible match support (EJAB-722) 2010-04-19 14:08:00 +10:00
Pablo Polvorin 84c4d75735 Remove warning for undefined print_state/1 function for p1_fsm processes (thanks Badlop).
Include a identity function as implementation of print_state/1.
2010-04-09 14:25:00 -03:00
Pablo Polvorin 41aa693896 Allow customizing the StateData in p1_fsm before error reporting.
A new callback is introduced on the p1_fsm behaviour:

print_error/1

If the module implements this function, it will be invoked
in case of process crash with the current state data *before*
printing the error in the log. The function must return the
desired State to print.

It is used in ejabberd_c2s to prune the presence sets that
can be large. Instead, the state is changed to include only
the # of elements on each set.

Change inspired in comming changes to gen_server on OTP, and
http://github.com/erlyvideo/erlyvideo/commit/b01d15abc3189226dbf824db19db22da35fa33a0#diff-0
2010-03-30 16:39:34 -03:00
Badlop 44b282474a Fix indentation (EJAB-1038) 2010-03-29 20:51:24 +02:00
Badlop 70cfcb1008 Fix crash in number of occupants; other minor changes (EJAB-1038) 2010-03-29 20:51:04 +02:00
Badlop fa28c8baf6 Refactor code to reduce calls to get_affiliation and get_role (thanks to Steam)(EJAB-1038) 2010-03-29 20:49:52 +02:00
Evgeniy Khramtsov 584fa98564 - pass jid into feature_check_packet hook;
- bounce messages when closing c2s session;
- implemented treap:to_list/1 and treap:from_list/1
2010-03-17 23:40:48 +09:00
Mickael Remond 214c62bf9c Move HTTP session timeout log from warning level to info. Timeout can be generated when user close the browser for example. 2010-03-15 11:42:11 +01:00
Badlop 962b66b099 Update ejabberd version number to 2.1.3 2010-03-12 10:21:32 +01:00
Badlop 417cf11bdd Add 2.1.3 release notes 2010-03-11 20:50:26 +01:00
Christophe Romain b3da1c7d86 improve remove_user (EJAB-1172) 2010-03-11 16:00:42 +01:00
Evgeniy Khramtsov 839b406903 don't route PEP error messsages to a client 2010-03-09 14:03:27 +09:00
Peter Lemenkov 95e085beb7 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 21:16:18 +01:00
Christophe Romain df63fcd353 typo fix on previous pubsub patch 2010-03-08 15:40:08 +01:00
Christophe Romain 77e549e504 allow sending PEP to bare jid on s2s 2010-03-08 15:16:58 +01:00
Badlop 20c2bc54cd Document mod_sic (EJAB-1205) 2010-03-08 13:58:22 +01:00
Badlop 63ccbe90d3 Implement XEP-0279: Server IP Check (thanks to Karim Gemayel)(EJAB-1205) 2010-03-08 13:58:06 +01:00
Badlop 1f02b5db0f Fix warnings about unused variable. 2010-03-08 12:43:38 +01:00
Badlop 6bde01cd45 Replace concat_binary supported until R14 with list_to_binary supported since R9 2010-03-08 12:41:11 +01:00
Badlop f36ac2b809 Catch errors when exporting to PIEFXIS file (EJAB-1178) 2010-03-08 11:13:56 +01:00
Badlop e4f19df428 Recompile the Guide 2010-03-08 11:07:28 +01:00
Evgeniy Khramtsov 606860e1cc ldap_dn_filter option is documented; now fetching only needed attributes in LDAP search requests (EJAB-1204) 2010-03-08 16:44:14 +09:00
Evgeniy Khramtsov 22d490486a now using "%u" pattern as default for ldap_uids (EJAB-1203) 2010-03-08 14:04:56 +09:00
Christophe Romain d2d06403ac fix mistake in previous broadcast_stanza change 2010-03-05 18:20:22 +01:00
Christophe Romain 6ee8ec49a5 add extended stanza addressing 'replyto' on PEP (EJAB-1198) (thanks karim) 2010-03-05 17:52:41 +01:00
Denis Kurochkin 6e878d17e6 MSSQL support was broken (EJAB-1201) 2010-03-05 14:40:33 +01:00
Christophe Romain 4984320f17 fix compilations issues 2010-03-05 11:53:26 +01:00
Christophe Romain 09250c0b65 minor intentation fix, and sync _odbc code 2010-03-05 11:35:20 +01:00
Christophe Romain 6e8f5a9cd3 add pubsub#purge_offline (EJAB-1186) (thanks karim) 2010-03-05 11:11:44 +01:00
Christophe Romain c3edcd0575 fix pubsub#title option (EJAB-1190) (thanks karim) 2010-03-05 10:40:34 +01:00
Christophe Romain 6fb99fbb48 mod_caps optimizations (thanks evgeniy) 2010-03-05 10:34:15 +01:00
Evgeniy Khramtsov 31c3a78453 improved s2s connections clean up (EJAB-1202) 2010-03-04 12:36:57 +09:00
Pablo Polvorin a3f2588df6 Remove print debug (thanks evgeniy) 2010-03-02 12:45:59 -03:00
Badlop 41c455fabb Add quotes in documentation of some erl arguments (thanks to Vincent Courcelle)(EJAB-1191) 2010-02-25 00:04:48 +01:00
Badlop 8045fec882 Fix German translation (thanks to Florian Zumbiehl)(EJAB-1195) 2010-02-24 23:06:09 +01:00
Badlop 414004eae4 Fix resending authorization problem 2010-02-24 13:14:45 +01:00
Badlop 8e8a1a3bf5 Run user_receive_packet also when sending offline messages to client (thanks to Brian Acton)(EJAB-1193) 2010-02-22 22:57:08 +01:00
Badlop fbd8547d94 Fix typos in example config comments (thanks to Florian Zumbiehl)(EJAB-1192) 2010-02-22 13:40:42 +01:00
Badlop 6df9a6ab33 Use alternative of file:read_line/1 to not require R13B02 2010-02-20 19:31:36 +01:00
Evgeniy Khramtsov 2907446e87 fixes typo in Russian translation 2010-02-20 20:41:39 +09:00
Evgeniy Khramtsov f60804b060 get rid of queue:filter/2 to keep compatibility with older Erlang versions 2010-02-20 20:05:48 +09:00
Evgeniy Khramtsov e569087d83 now using mnesia:async_dirty when cleaning table from failed node 2010-02-19 16:38:18 +09:00
Badlop 4a7a33168a Reduce verbosity of HTTP Binding log messages (thanks to Alexey Shchepin) 2010-02-19 00:01:26 +01:00
Badlop d7fbad6fa1 Recompile guide.html 2010-02-18 22:13:28 +01:00
ekhramtsov e6c23e0413 improved explanation of "max_fsm_queue" option; included this option in ejabberd.cfg.example (EJAB-1185) 2010-02-18 15:48:11 +09:00
ekhramtsov 35e00ebcf6 option "access_from" is now documented (EJAB-1187) 2010-02-18 14:57:08 +09:00
ekhramtsov 1a96944929 new option "hostname" is added (thanks to Stefan Hepp) (EJAB-838) 2010-02-17 23:17:33 +09:00
Badlop bc69b96e4c Close also legacy sessions that were half connected (thanks to Evgeniy Khramtsov)(EJAB-1165) 2010-02-16 12:46:20 +01:00
Badlop 35c9c95e4b Remove references to the old SVN repository. 2010-02-16 11:55:01 +01:00
Badlop 47ee65d101 Rewrite mnesia counter functions to use dirty_update_counter (EJAB-1177)
(thanks to Juan Pablo Carlino and Alexey Shchepin)
2010-02-15 23:38:17 +01:00
Badlop 8a856df2f0 New command to set master Mnesia node 2010-02-15 23:24:48 +01:00
Badlop 6795675108 Shared roster gets contact nickname from vcard, when available (EJAB-114) 2010-02-15 22:47:28 +01:00
Badlop 6867ca43e4 Cross-domain HTTP-Bind support (thanks to Jack Moffitt)(EJAB-1168) 2010-02-15 22:42:59 +01:00
Badlop ab0905ce56 Fix cluster race condition in route read (thanks to Alexey Shchepin) 2010-02-15 18:29:17 +01:00
Badlop a71b47ea27 Improve TTY code to work on more operating systems (thanks to Jan Koum) 2010-02-12 22:11:15 +01:00
Badlop 2cca00acc0 Added support for Jot in ctl and TTY in debug (thanks to Jan Koum) 2010-02-12 20:50:56 +01:00
Badlop 7c36e304f0 Minor fixes in the new ejabberdctl flock code 2010-02-12 20:25:31 +01:00
Martin Langhoff 10c16b1cdf 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:23:33 +01:00
Badlop 8bd37462cb Remove unnecessary section about Snow Leopard with Erlang R13B 2010-02-11 13:20:06 +01:00
Badlop 78f1fe9ba5 Replace mention of ejabberd SVN with Git. 2010-02-11 13:14:55 +01:00
Badlop b17c7848fd Fix bashism in 'ejabberdctl started' 2010-02-11 11:02:57 +01:00
Badlop 071aa123e8 Allow a request_handler to serve a file in root of HTTP 2010-02-10 20:17:09 +01:00
Badlop abdb7f2742 Fix character in README file
SVN Revision: 2963
2010-02-05 13:30:27 +01:00
Pablo Polvorin bc70e90853 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:30:27 +01:00
Pablo Polvorin 787e078f6a 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:30:27 +01:00
Pablo Polvorin 17607ecaa4 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:30:26 +01:00
Evgeniy Khramtsov 9d84caebdb avoid resending <stream:error> stanzas on terminate (EJAB-1180)
SVN Revision: 2955
2010-02-03 11:25:03 +00:00
Evgeniy Khramtsov 35bcadde7a avoid 'invalid' value in #iq{} record
SVN Revision: 2954
2010-02-02 13:41:34 +00:00
Evgeniy Khramtsov d9e345a4d8 iq_query_info/1 now returns 'invalid' if XMLNS is invalid
SVN Revision: 2953
2010-02-02 12:20:19 +00:00
Evgeniy Khramtsov 46c667c567 changed Reason to shutdown when stopping destroyed MUC room
SVN Revision: 2952
2010-02-02 11:49:49 +00:00
Badlop db3f8487fc Fix bug handling Reason in gen_fsm:terminate
SVN Revision: 2950
2010-02-02 11:14:48 +00:00
Evgeniy Khramtsov 34234b4a46 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 value is to deny such operations.
SVN Revision: 2949
2010-01-31 13:55:10 +00:00
Evgeniy Khramtsov 03454c7f1d improved SQL reconnect behaviour
SVN Revision: 2947
2010-01-31 11:41:28 +00:00
Evgeniy Khramtsov 1cced15c0d regenerated guide.html
SVN Revision: 2945
2010-01-28 15:37:42 +00:00
Evgeniy Khramtsov 4c8beae585 ejabberd_c2s option "max_fsm_queue" is now documented
SVN Revision: 2941
2010-01-28 13:56:38 +00:00
Evgeniy Khramtsov 0a3cfeeed9 new ejabberd_c2s option support: max_fsm_queue
SVN Revision: 2939
2010-01-28 13:44:49 +00:00
Evgeniy Khramtsov 933d4a69b8 fixes regression with configure script
SVN Revision: 2938
2010-01-28 13:34:17 +00:00
Evgeniy Khramtsov 352afa7902 now using p1_fsm behaviour in c2s FSM (EJAB-1173)
SVN Revision: 2936
2010-01-28 13:00:04 +00:00
Mickaël Rémond ce18cfb41b Fix typo in doc
SVN Revision: 2928
2010-01-26 13:16:51 +00:00
Badlop 4fe8d76b83 Fix documentation installation, no need for executable permission (thanks to Peter)(EJAB-1170)
SVN Revision: 2926
2010-01-25 18:40:17 +00:00
Badlop d804698541 Fix typo in EJABBERD_BIN_PATH (thanks to Martin Langhoff)(EJAB-891)
SVN Revision: 2925
2010-01-25 18:37:58 +00:00
Badlop 1b1a0d7ed3 Support in ejabberdctl help command names with old - characters.
SVN Revision: 2924
2010-01-25 18:32:45 +00:00
Badlop a0de5bc317 Revert version number from 2.1.2 tag to 2.1.x branch
SVN Revision: 2916
2010-01-18 14:37:36 +00:00
Badlop a77b6946cf Update version number to 2.1.2
SVN Revision: 2914
2010-01-18 12:11:16 +00:00
Badlop cbbb7256ae Add ejabberd 2.1.2 release notes
SVN Revision: 2913
2010-01-18 12:11:09 +00:00
Badlop 16bd626fc9 Close sessions that were half connected (thanks to Alexey Shchepin)(EJAB-1165)
SVN Revision: 2911
2010-01-17 19:28:35 +00:00
Badlop 8068fdf4e3 Fix some moved URLs in the Guide
SVN Revision: 2908
2010-01-16 14:34:35 +00:00
Badlop b6aa6d6f09 Document the option route_subdomains in the Guide (EJAB-1164)
SVN Revision: 2907
2010-01-16 14:34:31 +00:00
Badlop 86794b1d23 Fix OTP version detection to work with old supported R10 and R11
SVN Revision: 2906
2010-01-16 12:24:11 +00:00
Badlop 3e4858f348 Improve functions calls when closing client connection.
SVN Revision: 2904
2010-01-15 12:01:12 +00:00
Christophe Romain 7aff5defac improve delete_subscriptions code
SVN Revision: 2902
2010-01-14 12:51:22 +00:00
Christophe Romain 6ad93eb609 add send_loop robustness
SVN Revision: 2899
2010-01-13 10:22:55 +00:00
Badlop 9f5246cacc If big offline message queue, show only subset on WebAdmin (EJAB-1095)
SVN Revision: 2896
2010-01-12 23:58:22 +00:00
Badlop 855d427182 Fix explanation of access_max_user_messages.
SVN Revision: 2895
2010-01-12 23:57:44 +00:00
Badlop 4d85297c85 Check for Effective GID EGID in ejabberdctl (thanks to Rustam Aliyev)(EJAB-1160)
SVN Revision: 2893
2010-01-12 17:50:21 +00:00
Badlop 7b76fdcde7 Update year of ProcessOne copyright from 2009 to 2010 (EJAB-1159)
SVN Revision: 2891
2010-01-12 16:11:32 +00:00
Badlop 6179daaf99 For XEP-0227 support, get exmpp 0.9.2; maybe 0.9.1 works too.
SVN Revision: 2889
2010-01-12 15:52:46 +00:00
Christophe Romain 0cc58d7a71 remove useless comment
SVN Revision: 2888
2010-01-12 15:25:59 +00:00
Christophe Romain e5373de2b9 avoid calling gen_server on internal events (EJAB-1156)
SVN Revision: 2886
2010-01-12 15:14:47 +00:00
Christophe Romain 6ddff15b39 allow unsubscribe with 'all' SubId, as mod_pubsub already does
SVN Revision: 2884
2010-01-12 14:39:52 +00:00
Christophe Romain 392ea78acf fix NodeName issue from r2880 (thanks to Karim Gemayel)
SVN Revision: 2882
2010-01-12 13:27:04 +00:00
Christophe Romain 024b688c1d fix r2876 compilation warning
SVN Revision: 2880
2010-01-12 12:31:08 +00:00
Christophe Romain 276f890c50 apply r2876 on pubsub_odbc
SVN Revision: 2879
2010-01-12 12:12:28 +00:00
Badlop ee77257d41 Support in user list page of WebAdmin when mod_offline is disabled (EJAB-377)
SVN Revision: 2877
2010-01-12 12:02:50 +00:00
Christophe Romain e7a8bf6154 fix headers (EJAB-1091), (EJAB-1092), (EJAB-1093) (thanks to Karim Gemayel)
SVN Revision: 2876
2010-01-12 10:33:39 +00:00
Badlop 4f643ce9b8 Show and throw error when captcha_cmd is required but not configured.
SVN Revision: 2874
2010-01-11 22:21:23 +00:00
Badlop 8447dfa4b1 Minor case code simplification.
SVN Revision: 2873
2010-01-09 18:39:17 +00:00
Mickaël Rémond 7b05ba0e1e 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 c8fd680d92 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 24aefc429c Small refactoring
SVN Revision: 2867
2010-01-09 15:15:46 +00:00
Badlop 0bf9832187 An AccessCommand with Access 'all', don't require auth to execute it.
SVN Revision: 2865
2010-01-09 00:39:33 +00:00
Badlop 761ed1b192 Fix so script runs correctly when invoked by root (EJAB-1152)
SVN Revision: 2862
2010-01-05 19:43:03 +00:00
Badlop 05ee83bddc Improve parsing of ejabberd_sm:get_user_info result.
SVN Revision: 2857
2010-01-04 18:59:01 +00:00
Christophe Romain f30783a2d2 add explicit comment on last published items configuration (EJAB-1130)
SVN Revision: 2855
2010-01-04 11:49:00 +00:00
Badlop ee41e1eb70 Show the last activity time in the user page.
SVN Revision: 2854
2010-01-03 00:40:37 +00:00
Badlop 8d218dd2b9 Command to stop ejabberd informing users, with grace period, and kindly (EJAB-1112)
SVN Revision: 2853
2010-01-03 00:38:00 +00:00
Badlop 7cbda8badb When ejabberd stops, send stream close to clients (thanks to Alexey Shchepin)(EJAB-1112)
SVN Revision: 2852
2010-01-03 00:35:51 +00:00
Badlop 15a27c0566 Improve log message when showing lines of config file.
SVN Revision: 2850
2009-12-30 01:36:07 +00:00
Badlop d9a1eecdca Kick occupants with reason when room is stopped due to MUC shutdown (EJAB-1149)
SVN Revision: 2848
2009-12-30 01:25:35 +00:00
Badlop 5d749de74d Fix warning about unused variable
SVN Revision: 2846
2009-12-29 23:12:52 +00:00
Badlop dbad3df333 If problem in config file starting ejabberd: display config lines and stop node (EJAB-1148)
SVN Revision: 2844
2009-12-29 22:48:25 +00:00
Badlop 50137aa98d Add +export_all to EFLAGS if: make debug=true (thanks to Marcin Owsiany)(EJAB-1134)
SVN Revision: 2842
2009-12-29 19:10:52 +00:00
Badlop f0863e1dfe Support also SASL PLAIN auth messages described in RFC4616 (EJAB-1132)
SVN Revision: 2839
2009-12-29 18:44:17 +00:00
Badlop 1713bf635d Disable code of recent commit because some clients can't handle it (EJAB-1058)
SVN Revision: 2838
2009-12-29 18:44:02 +00:00
Badlop 9bee86178f Write in room log when a room is created, destroyed, started, stopped (EJAB-1144)
SVN Revision: 2836
2009-12-29 14:43:24 +00:00
Badlop 455d85a278 Send features after negotiating binding and session (EJAB-1058)
SVN Revision: 2834
2009-12-28 20:09:46 +00:00
Badlop d812975565 Provide more detailed log message when s2s stream start fails.
SVN Revision: 2831
2009-12-28 15:29:42 +00:00
Badlop 9aa9c34a57 Better use install_fallback when importing a Mnesia backup file.
SVN Revision: 2829
2009-12-28 12:43:44 +00:00
Badlop 34d5d08501 Support for arguments in ejabberdctl that are empty strings.
SVN Revision: 2827
2009-12-28 11:45:46 +00:00
Badlop 71142e336d Add explanation about global Access precendence over vhost Access (EJAB-803)
SVN Revision: 2824
2009-12-23 16:08:34 +00:00
Badlop c7f4f39c03 Fix error message when register is forbidden by ACL (EJAB-803)
SVN Revision: 2823
2009-12-23 16:08:20 +00:00
Badlop b2d6a25240 Improved Polish translation (thanks to Janusz B. Wiśniewski and Zbigniew Żółkiewski)(EJAB-1138)
SVN Revision: 2822
2009-12-23 14:23:45 +00:00
Badlop 4a57f5db74 Recompile all translation files
SVN Revision: 2821
2009-12-23 14:23:30 +00:00
Badlop 4cdf7fba4f Clarify that 'tls' option is still useful in ejabberd_http for HTTPS.
SVN Revision: 2819
2009-12-23 09:04:39 +00:00
Badlop 341e47c2a4 Remove the old note about LDAP lack of encryption.
SVN Revision: 2817
2009-12-21 16:10:51 +00:00
Badlop 675c24f5eb pep_mapping not working due to Node type mismatch (EJAB-1135)
SVN Revision: 2815
2009-12-21 15:13:44 +00:00
Badlop 15abddb7a8 Fix EDoc comment
SVN Revision: 2814
2009-12-21 14:35:09 +00:00
Badlop 3df45683ff Fix get_group_opt to return Default value in case of Mnesia error.
SVN Revision: 2811
2009-12-19 00:16:32 +00:00
Badlop ef49822a47 Update branch version name back to 2.1.x
SVN Revision: 2810
2009-12-17 18:08:07 +00:00
Badlop 402a8c0d35 Prepare 2.1.1 release
SVN Revision: 2808
2009-12-14 14:15:45 +00:00
Badlop d24449488c Print command's reply and newline only when there's something to print.
SVN Revision: 2806
2009-12-11 20:04:36 +00:00
Badlop b9e57a341d Added to ejabberdctl an experimental variable EJABBERD_BYPASS_WARNINGS
SVN Revision: 2804
2009-12-11 19:42:59 +00:00
Badlop 79be929d96 Add support for serving a Unique Room Name (thanks to Pablo Polvorin)(EJAB-1121)
SVN Revision: 2802
2009-12-11 12:30:41 +00:00
Badlop 65aed47873 Show Last Activity menu item in Webadmin only if vhost has mod_last (EJAB-1031)
SVN Revision: 2799
2009-12-09 17:47:02 +00:00
Badlop 8ac16a0ec1 Call in WebAdmin the proper mod_last backend module (EJAB-1031)
SVN Revision: 2798
2009-12-09 17:46:51 +00:00
Badlop 3250c24ff1 This is ejabberd 2.1.x branch, not 2.1.0 tag.
SVN Revision: 2796
2009-12-09 10:09:35 +00:00
Badlop 88b6849e69 Fix erl -setcookie argument in cluster setup (thanks to Jan Koum)
SVN Revision: 2795
2009-12-09 10:09:19 +00:00
Badlop e3b4c99b00 Apply a forgotten part of the original patch (EJAB-1119)
SVN Revision: 2792
2009-12-08 17:32:46 +00:00
Badlop 1f5bf8fbc0 Fix memory and port leak when TLS is enabled in HTTP (thanks to Brian Cully)(EJAB-1119)
SVN Revision: 2790
2009-12-07 17:33:02 +00:00
Badlop f044d6ed28 Fix bug that couldn't connect if starttls_required and zlib were set (EJAB-1118)
SVN Revision: 2789
2009-12-07 15:54:25 +00:00
Christophe Romain 3aa242e2c7 prevent sending duplicated last items if several resources online (EJAB-1116)
SVN Revision: 2786
2009-12-06 23:18:17 +00:00
Badlop 8983cba129 Typo in mod_pubsub_odbc breaks Service Discovery and more (EJAB-1115)
SVN Revision: 2784
2009-12-04 18:35:14 +00:00
Badlop bd97c40f92 Call ejabberd_router:route/3 instead of sending a message (EJAB-1114)
SVN Revision: 2782
2009-12-04 16:31:25 +00:00
Badlop 5a006b977d Small relax the limitation in the mod_pubsub_odbc host option.
SVN Revision: 2781
2009-12-04 16:08:31 +00:00
Badlop 3658da3ae8 Explain limitation in the mod_pubsub_odbc host option.
SVN Revision: 2777
2009-12-03 22:53:56 +00:00
Badlop 2265f52c34 Fix warning of unused variable
SVN Revision: 2776
2009-12-03 22:53:39 +00:00
Badlop 7b244652f1 Use os:getenv to get HOME; if variable is undefined use default values.
SVN Revision: 2773
2009-12-03 15:59:01 +00:00
Badlop 325e67f4cb Use old regexp instead re in 2.x for pre-R12B-4 compatibility.
SVN Revision: 2771
2009-12-02 23:26:28 +00:00
Badlop 6ce660b9c2 IQ sent to resource not connected, return service-unavailable instead of recipient-unavailable (EJAB-1045)
SVN Revision: 2768
2009-12-01 20:00:33 +00:00
Badlop 575e07a986 Forward IQ vCard queries of room occupants to bare JID, not full (EJAB-1045)
SVN Revision: 2767
2009-12-01 20:00:15 +00:00
Badlop 20d1011194 Don't handle internally an IQ vCard if destination is full JID (EJAB-1045)
SVN Revision: 2766
2009-12-01 19:59:59 +00:00
Badlop 3df5277728 Move get_group_name outside the loop (thanks to mikekaganski)
SVN Revision: 2762
2009-11-26 14:46:24 +00:00
Badlop ea4f379bd5 Fix explanation of option content_types. Reorder options.
SVN Revision: 2755
2009-11-23 19:11:37 +00:00
Badlop 51594b6011 Generate main XML file also when exporting only a vhost (EJAB-1098)
SVN Revision: 2753
2009-11-23 18:34:36 +00:00
Badlop 58425ba45d Show informative webpage when browsing the HTTP-Poll page (EJAB-1106)
SVN Revision: 2751
2009-11-23 15:21:05 +00:00
Badlop 7fd3d67ff3 Change captcha.sh to not depend on bash (thanks to Konstantin Khomoutov)(EJAB-1105)
SVN Revision: 2749
2009-11-23 12:43:15 +00:00
Badlop 1716b090f9 Option to define custom HTTP headers in mod_http_fileserver (EJAB-612)
SVN Revision: 2747
2009-11-23 12:00:46 +00:00
Badlop e5e777694d Explain that the example captcha.sh requires Bash because uses RANDOM feature.
SVN Revision: 2745
2009-11-17 15:49:05 +00:00
Badlop 6cf3ae8050 Include IP address, time and module in IBR admin message (thanks to Tsukasa Hamano)
SVN Revision: 2744
2009-11-17 11:14:31 +00:00
Badlop 26c572b7e7 The default value of option ldap_filter is: undefined.
SVN Revision: 2741
2009-11-13 20:16:41 +00:00
Evgeniy Khramtsov 311bf4dbb1 fixes allow_host/2 on subdomains. added hook s2s_allow_host: the hook should return deny or allow
SVN Revision: 2738
2009-11-13 16:19:46 +00:00
Badlop 1511a5dc82 Fix EDoc errors
SVN Revision: 2735
2009-11-06 18:26:06 +00:00
Badlop 041d947e83 Fix bug that forgot listener options when using R12 or older.
SVN Revision: 2734
2009-11-06 18:24:54 +00:00
Christophe Romain 2007b3d496 typo fix that breaks pep
SVN Revision: 2731
2009-11-06 11:01:40 +00:00
Christophe Romain 09e847b97d fix root node deletion match
SVN Revision: 2729
2009-11-05 17:36:15 +00:00
Badlop b9f911554c Fix ProcessOne name in comments.
SVN Revision: 2724
2009-11-04 20:14:22 +00:00
Badlop 24323e8b3b Extend explanation of ldap_encrypt tls (thanks to Konstantin Khomoutov)
SVN Revision: 2723
2009-11-04 20:12:54 +00:00
Badlop 1a5eb4f73d Fix disco on root node, add commands to disco (thanks to Brian Cully)(EJAB-1094)
SVN Revision: 2722
2009-11-04 19:54:15 +00:00
Badlop 3930715712 Send authorization messages outside of get-pending transaction (thanks to Brian Cully)(EJAB-1090)
SVN Revision: 2721
2009-11-04 19:52:33 +00:00
Badlop 64bc97d471 Send authorization messages outside of get-pending transaction (thanks to Brian Cully)(EJAB-1090)
SVN Revision: 2719
2009-11-04 17:38:51 +00:00
Badlop 4aec8dda48 Extend explanation of mod_pubsub "default" rename to "hometree".
SVN Revision: 2718
2009-11-04 09:42:54 +00:00
Badlop 9192c75e1a Fix stringprep Bidi checking (thanks to Alexey Shchepin)(EJAB-1087)
SVN Revision: 2717
2009-11-01 12:15:34 +00:00
Christophe Romain 512d701ef8 minor bugfix, thanks to brian Cully (EJAB-1089)
SVN Revision: 2713
2009-10-27 14:26:22 +00:00
Christophe Romain ef3dd090c7 backport previous patch to pubsub odbc
SVN Revision: 2711
2009-10-27 14:13:18 +00:00
Christophe Romain 3d5fe6a337 fix disco bugs, thanks to Brian Cully (EJAB-1088)
SVN Revision: 2710
2009-10-27 14:07:35 +00:00
Badlop 0906a68c27 Mention in Release Notes the three changes in SQL databases (EJAB-1078)
SVN Revision: 2707
2009-10-23 17:32:12 +00:00
Badlop 798853abb6 Fix mistake that disallowed s2s_out connections when using Erlang R12 or older.
SVN Revision: 2694
2009-10-21 21:11:09 +00:00
Badlop 5e3fdbeeed Mention the change in nodename slash separation in release notes.
SVN Revision: 2689
2009-10-20 15:39:57 +00:00
Badlop 04545f2668 Create branch for ejabberd 2.1.x release line.
SVN Revision: 2688
2009-10-20 15:28:48 +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 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 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 257e4c34a8 Provide send_timeout_close option in TCP only in R13B or higher (EJAB-926)
SVN Revision: 2680
2009-10-19 14:47:05 +00:00
Badlop 66cd86e726 Support ejabberd_listener option 'backlog' to increase TCP backlog (thanks to Janusz Dziemidowicz)(EJAB-1063)
SVN Revision: 2678
2009-10-19 13:23:46 +00:00
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 47d86f5ad1 Fix word Sensible with Sensitive (thanks to Marcin Owsiany)(EJAB-1071)
SVN Revision: 2675
2009-10-19 10:48:55 +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 f86318a179 Fixed more gcc signedness warnings
SVN Revision: 2668
2009-10-13 22:30:08 +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 cbf6abc263 typo fix (EJAB-1060)
SVN Revision: 2664
2009-10-13 07:47:17 +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 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
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 2c48515e7c return invalid-options on badly formed subscription options
SVN Revision: 2656
2009-10-12 09:59:36 +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 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 4039f4a14f Document new option max_fsm_queue.
SVN Revision: 2648
2009-10-08 14:29:42 +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 0a77892391 allow max_items_node use on pep
SVN Revision: 2642
2009-10-06 15:18:58 +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 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 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 4667cefb62 do not create hometree base when hometree not configured as plugin
SVN Revision: 2634
2009-09-25 13:12:29 +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 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
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 68fd22af87 fix Makefile.win32 for including stun (thanks to neustradamus)
SVN Revision: 2619
2009-09-23 21:11:21 +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 8107b2b7dc fix EJAB-819 thanks to badlop
SVN Revision: 2615
2009-09-23 15:56:06 +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 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 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 9aee12d83b fix missing member affiliation on odbc plugin
SVN Revision: 2603
2009-09-18 13:43:49 +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 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 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 d678a21f21 Change some error messages.
SVN Revision: 2587
2009-09-07 14:28:08 +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 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 0d108d5b1e Update Swedish translation (thanks to Gustaf Alströmer)
SVN Revision: 2580
2009-09-02 13:39:57 +00:00
Christophe Romain 07f457f49f improve previous patch
SVN Revision: 2578
2009-09-01 13:16:10 +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 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 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 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 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 156c496a27 fix send last item issue
SVN Revision: 2560
2009-08-28 00:06:28 +00:00
Christophe Romain 5e99d3416d delete node fix
SVN Revision: 2558
2009-08-27 22:36:46 +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 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 670d7c7ebd port commit from r2527 to odbc plugin
SVN Revision: 2543
2009-08-27 08:17:44 +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
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 1b81a2e3d6 Write PID file, path is configurable in ejabberdctl.cfg (EJAB-1023)
SVN Revision: 2526
2009-08-24 21:21:04 +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 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 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 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 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 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 cf6d39487a Display room service messages in distintive blue colour.
SVN Revision: 2491
2009-08-15 22:02:49 +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 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 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 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 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 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 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 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 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 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 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
Christophe Romain b08c061683 fix configuration result (EJAB-995)
SVN Revision: 2408
2009-07-30 13:13:22 +00:00
Evgeniy Khramtsov cd68e0021e do not crash on unmatched request
SVN Revision: 2406
2009-07-30 13:08:26 +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 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
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 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 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 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 46735f7c62 Fix typo from EJAB-988
SVN Revision: 2380
2009-07-21 19:17:32 +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 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 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 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 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 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 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 0287d50ff4 If directory /sbin is created, set permissions 755, not 750.
SVN Revision: 2358
2009-07-07 08:27:15 +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 4f0cd053c4 Support XEP-0085 Chat State Notifications (EJAB-961)
SVN Revision: 2350
2009-06-30 19:32:22 +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 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 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 edb5211f5f Improve explanation about SSL for port 5223 and its option 'tls'.
SVN Revision: 2339
2009-06-25 18:02:23 +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 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 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 534d6a49f9 Add forgotten optional requirement: Imagemagick's Convert.
SVN Revision: 2325
2009-06-17 09:05:22 +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 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
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 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 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 6f080f7fed Prevent process crash if the IP and port of a connection is unknown.
SVN Revision: 2155
2009-06-11 18:01:36 +00:00
Badlop ce7e9129d9 When client is closed, include the Reason in the stream trailer stanza.
SVN Revision: 2153
2009-06-09 12:09:48 +00:00
Badlop f767def249 Add forgotten copyright and license notices. Fix blackspaces.
SVN Revision: 2151
2009-06-09 10:56:14 +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 72b842d8d1 Remove support of deprecated Disco Publish XEP-0030 (EJAB-904)
SVN Revision: 2140
2009-06-02 18:07:59 +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
Christophe Romain fa5b06f542 apply patch from EJAB-845
SVN Revision: 2118
2009-05-29 02:14: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 c27d6fddf4 make flat the default node plugin
SVN Revision: 2116
2009-05-29 00:27:26 +00:00
Christophe Romain 6bd70aaf09 fix ets table name change
SVN Revision: 2115
2009-05-29 00:13:21 +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 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
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 ffe2d532bf improve get_entity_* to work regardless of nodetree (EJAB-937)
SVN Revision: 2104
2009-05-26 21:50:13 +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 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 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 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 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 dffe808895 PubSub: improve get_entity_* API
SVN Revision: 2090
2009-05-19 21:59:15 +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
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 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 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
Christophe Romain 257efddd1b Fix bad transaction returncode in unsubscribe presence handler
SVN Revision: 2073
2009-05-12 20:57:38 +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 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 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 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 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 fec3742aaa Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2057
2009-05-06 16:54:43 +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 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 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 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 b2659e4a6f * src/ejabberd_hooks.erl: Support distributed hooks (EJAB-829)
SVN Revision: 2047
2009-04-28 14:57:16 +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 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 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 cabf128bbb * src/cyrsasl_digest.erl: Fix auth verification (EJAB-863)
SVN Revision: 2042
2009-04-27 20:24:21 +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 fc9ba11afe minor cosmetic fix
SVN Revision: 2040
2009-04-24 21:34:59 +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 eab7a509f9 improve send last published items spawning
SVN Revision: 2036
2009-04-22 22:19:41 +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 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 aedb847a81 * src/cyrsasl.erl: Change API of check_password: pass a function
to generate the digest (thanks to Graham Whitted)(EJAB-863)
* src/cyrsasl_anonymous.erl: Likewise
* src/cyrsasl_digest.erl: Likewise
* src/cyrsasl_plain.erl: Likewise
* src/ejabberd_auth.erl: Likewise
* src/ejabberd_auth_anonymous.erl: Likewise
* src/ejabberd_auth_external.erl: Likewise
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_ldap.erl: Likewise
* src/ejabberd_auth_odbc.erl: Likewise
* src/ejabberd_auth_pam.erl: Likewise
* src/ejabberd_c2s.erl: Likewise

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

SVN Revision: 2032
2009-04-22 11:02:03 +00:00
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 0b8a6d92f8 fix missing greetings
SVN Revision: 2026
2009-04-17 20:43:12 +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 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 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 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 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
Christophe Romain 0770e0eee4 after check, last commit was useless
SVN Revision: 2019
2009-04-14 12:46:55 +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 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 7d0de522dd * src/msgs/pl.po: Fix some translations (thanks to Andrzej Smyk)
SVN Revision: 2011
2009-04-09 11:18:06 +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 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 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 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 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 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 bc39341633 implement roster acces model (EJAB-780)
SVN Revision: 1997
2009-03-20 00:08:38 +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 f214b8c528 Fix mistake when calling win32_dns.
SVN Revision: 1990
2009-03-11 18:36:27 +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 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 064d1af5de typo fix on roster access_model
SVN Revision: 1984
2009-03-10 12:08:41 +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 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 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 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
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 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 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 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
Christophe Romain b3c39d120f Allow node creation without configure item
SVN Revision: 1963
2009-03-04 01:12:10 +00:00
Christophe Romain 965585eb56 update pubsub version
SVN Revision: 1960
2009-03-04 01:04:28 +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 117b67a31c Fix small compilation error introduced in revision 1923
SVN Revision: 1931
2009-02-28 00:01:27 +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
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
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 67e24366ee cosmetic changes
SVN Revision: 1923
2009-02-27 03:09:00 +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 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
Badlop 1650a946f2 * src/ejabberd_listener.erl: Fix report message of 'undef' error
SVN Revision: 1916
2009-02-24 17:25:40 +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
Badlop e6324f8a02 Fix a minor compilation warning and add EDoc comment
SVN Revision: 1907
2009-02-21 11:24:08 +00:00
Badlop ce03742e1b * src/ejabberd_listener.erl: When stopping a listener, don't stop
the listener supervisor (EJAB-874)

SVN Revision: 1891
2009-02-20 14:51:13 +00:00
Christophe Romain 6e055f60de fix nodetree plugin resolver
SVN Revision: 1889
2009-02-19 11:25:56 +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 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
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
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
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
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 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
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
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
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
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
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
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
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 1ac9246a49 prevent unauthorized entity to gain none-affiliation for given entity
SVN Revision: 1802
2009-01-11 04:08:10 +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
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
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 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
Badlop 91a7110941 * src/*.erl: Fix EDoc comments
SVN Revision: 1771
2009-01-03 21:29:54 +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 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
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 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 c0fb556a01 Check option of the nodetree instead of checking configuration
SVN Revision: 1737
2008-12-18 13:45:46 +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
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
Christophe Romain 6e5a32308a fix typo bug injected in r1712
SVN Revision: 1724
2008-12-09 22:42:01 +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 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
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
Badlop 8e32cc11cb Fix default value of default_room_options (thanks to Aleksey Shchepin)
SVN Revision: 1702
2008-12-03 15:06:21 +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
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
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
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
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
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
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
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
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
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
Christophe Romain 70dd325aef EJAB-739 and EJAB-751 improvements
SVN Revision: 1576
2008-09-25 17:26:06 +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
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
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
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
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
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
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
Alexey Shchepin fb43bb0109 * src/odbc/odbc_queries.erl: Fixed a typo
SVN Revision: 1467
2008-07-22 04:17:13 +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
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
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
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
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
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
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
Christophe Romain cf8be23af1 allow get_default on PEP nodes (EJAB-656)
SVN Revision: 1364
2008-06-19 09:08:39 +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 f383511e0d add release_notes_2.0.1
SVN Revision: 1338
2008-05-19 22:35:01 +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
Jérôme Sautret 2f65188edb Created ejabberd 2.1.X branch.
SVN Revision: 1274
2008-04-03 13:38:34 +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
Mickaël Rémond caba9d7aef Backup recommandation
SVN Revision: 319
2005-04-18 21:45:41 +00:00
Alexey Shchepin 46b5c0fdb9 * doc/guide.tex: Updated
SVN Revision: 318
2005-04-18 21:38:05 +00:00
Alexey Shchepin b8eadd4bf0 * doc/guide.tex: Updated
SVN Revision: 317
2005-04-18 21:34:54 +00:00
Alexey Shchepin bf21482fac * src/web/ejabberd_web_admin.erl: Added link to shared roster page
SVN Revision: 316
2005-04-18 20:03:07 +00:00
Mickaël Rémond 59d166101e Updated release note: Pgsql support is experimental
SVN Revision: 315
2005-04-18 19:45:16 +00:00
Alexey Shchepin 77c8251300 * src/odbc/ejabberd_odbc.erl: ODBC connection string can be
specified via odbc_server option now
* src/ejabberd.cfg.example: Added ODBC usage example

SVN Revision: 314
2005-04-18 18:41:57 +00:00
Mickaël Rémond 374ea0b8f5 Fixed date in documentation.
Preparing release note for ejabberd 0.9

SVN Revision: 313
2005-04-18 18:16:01 +00:00
Alexey Shchepin 78f3e2edb0 * doc/guide.tex: Updated
SVN Revision: 312
2005-04-18 14:47:13 +00:00
Alexey Shchepin e0d1e68096 * src/msgs/pl.msg: New Polish translation (thanks to Andrew Smyk)
SVN Revision: 311
2005-04-18 09:45:19 +00:00
Alexey Shchepin 530c036984 Applied VH patch
SVN Revision: 310
2005-04-17 22:59:44 +00:00
Alexey Shchepin e46b28f27f Cleanup
SVN Revision: 309
2005-04-17 21:39:41 +00:00
tmallard 2d9b9956b5 Merged Process One contribution (Virtual Hosting)
SVN Revision: 308
2005-04-17 18:10:17 +00:00
tmallard 374446f847 Merged the Process One contributions ( Virtual Hosting )
SVN Revision: 307
2005-04-17 18:08:34 +00:00
Alexey Shchepin 13de45118d * src/ejabberd_c2s.erl: Send new id for each new stream inside one
session (thanks to Maxim Ryazanov)

* src/tls/tls_drv.c: Now reads all certificates from certificate
file instead of reading only first one (thanks to Karl-Johan
Karlsson)

* examples/transport-configs/init-scripts/jabber-gg-transport:
Fixed typo (thanks to Sander Devrieze)

SVN Revision: 305
2005-04-09 23:47:56 +00:00
Alexey Shchepin e23e473012 * src/ejabberd_c2s.erl: Send new id for each new stream inside one
session (thanks to Maxim Ryazanov)

* src/tls/tls_drv.c: Now reads all certificates from certificate
file instead of reading only first one (thanks to Karl-Johan
Karlsson)

* examples/transport-configs/init-scripts/jabber-gg-transport:
Fixed typo (thanks to Sander Devrieze)

SVN Revision: 304
2005-04-09 21:03:42 +00:00
Alexey Shchepin 3bba1ba4a6 * examples/transport-configs/configs/msn-transport.xml: Fixed typo
(thanks to Sander Devrieze)

SVN Revision: 303
2005-04-04 21:11:22 +00:00
Alexey Shchepin baa1cfada5 * examples/transport-configs/: Updated (thanks to Sander Devrieze)
SVN Revision: 302
2005-04-01 22:43:47 +00:00
Alexey Shchepin a12bded165 * examples/transport-configs/: Updated (thanks to Sander Devrieze)
SVN Revision: 301
2005-04-01 22:24:54 +00:00
Alexey Shchepin 6d74a69de5 * src/ejabberd_ctl.erl: Bugfix
SVN Revision: 300
2005-03-30 21:44:59 +00:00
Alexey Shchepin 5ba047fa38 * src/mod_muc/mod_muc_room.erl: Bugfix
SVN Revision: 299
2005-03-16 22:41:41 +00:00
Alexey Shchepin 33f408170c * src/ejabberd_sm.erl: Bugfix
SVN Revision: 298
2005-03-15 21:36:41 +00:00
Alexey Shchepin 301cc280aa * src/ejabberd_router.erl: Bugfix
SVN Revision: 297
2005-03-11 23:39:56 +00:00
Alexey Shchepin 36afafb9e6 * src/mod_irc/mod_irc_connection.erl: Added filtering of quit
status

* src/web/ejabberd_web_admin.erl: Copyright update
* src/mod_vcard_ldap.erl: Likewise
* src/mod_vcard.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/mod_muc/mod_muc.erl: Likewise
* src/mod_irc/mod_irc.erl: Likewise

SVN Revision: 296
2005-01-13 23:04:47 +00:00
Alexey Shchepin 3416cbe63a * src/odbc/ejabberd_odbc.erl: Load-balance ODBC requests between
several connections

* src/odbc/ejabberd_odbc_sup.erl: Supervisor for ODBC connections

* src/mod_muc/mod_muc_room.erl: Added missed type='form' attribute
in room configuration response (thanks to Badlop)

SVN Revision: 295
2004-12-29 23:10:14 +00:00
Alexey Shchepin 50bef3787a * src/mod_roster_odbc.erl: Roster support via ODBC (not completed)
* src/ejabberd_auth_internal.erl: Added remove_user hook
* src/ejabberd_auth_odbc.erl: Likewise
* src/mod_roster.erl: Use remove_user hook
* src/mod_offline.erl: Likewise
* src/mod_offline_odbc.erl: Likewise
* src/mod_last.erl: Likewise
* src/mod_last_odbc.erl: Likewise
* src/mod_vcard.erl: Likewise
* src/mod_private.erl: Likewise

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

SVN Revision: 294
2004-12-19 20:47:35 +00:00
Alexey Shchepin 7c900deff9 * src/ejabberd_sm.erl: Updated missed message passing from
previous patch

SVN Revision: 293
2004-12-14 23:51:21 +00:00
Alexey Shchepin 8c8e3469bc * src/odbc/pg.sql: DB creation script for postgres
* src/odbc/ejabberd_odbc.erl: Experimental support for ODBC
* src/mod_last_odbc.erl: Likewise
* src/mod_offline_odbc.erl: Likewise
* src/ejabberd_auth_odbc.erl: Likewise
* src/ejabberd_auth.erl: Likewise

SVN Revision: 292
2004-12-13 23:00:12 +00:00
Alexey Shchepin 0e9f506a91 * src/mod_stats.erl: Minor optimizations
SVN Revision: 291
2004-12-12 22:32:15 +00:00
Alexey Shchepin 591bc42669 * src/ejabberd_sm.erl: Added unset_presence_hook
* src/mod_last.erl: Use unset_presence_hook instead of direct call

* src/ejabberd_auth.erl: Splitted into ejabberd_auth_internal.erl,
ejabberd_auth_ldap.erl, and ejabberd_auth_external.erl,
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_ldap.erl: Likewise
* src/ejabberd_auth_external.erl: Likewise

SVN Revision: 290
2004-12-12 21:00:34 +00:00
Alexey Shchepin da58d568b1 * src/web/ejabberd_web_admin.erl: Changed type of password field
to "password"

* src/jlib.hrl: More stream error defines (thanks to Sergei
Golovan)

* src/ejabberd_c2s.erl: Support for starttls_required option
(thanks to Sergei Golovan)

* src/mod_muc/mod_muc_room.erl: Fixed mistake in case condition
(thanks to Sergei Golovan)

* src/xml_stream.erl: Added function parse_element/1

* src/expat_erl.c: Added PARSE_FINAL_COMMAND

SVN Revision: 289
2004-12-05 20:54:55 +00:00
Alexey Shchepin cc19cb1785 * src/ejabberd_listener.erl: Enable keepalive option
* src/xml_stream.erl: Added API for managing xml streams without
creating process
* src/ejabberd_receiver.erl: Use this API, now 2 processes are
created per C2S connection

SVN Revision: 288
2004-12-03 22:54:02 +00:00
Alexey Shchepin fb977729a9 * src/expat_erl.c: Now uses port control instead of port output
* src/xml_stream.erl: Likewise

* src/stringprep/stringprep.erl: Now register port instead of
storing it in ets table

* doc/guide.tex: Updated URLs to R10C release

SVN Revision: 287
2004-12-01 22:48:53 +00:00
Alexey Shchepin 3d1ff452cb * src/mod_vcard.erl: Added missed index
* doc/guide.tex: Updated (thanks to Sander Devrieze)

SVN Revision: 286
2004-11-21 21:35:51 +00:00
Alexey Shchepin 2f7f3d9b00 * src/aclocal.m4: Fixed headers detecting in AM_WITH_OPENSSL
(thanks to Leif Johansson)

* src/ejabberd_auth.erl: Added support for ldap_rootdn and
ldap_password options (thanks to Stefan de Konink)
* src/mod_vcard_ldap.erl: Likewise

* src/ejabberd_router.erl: Now possible to route packet via
function call instead of message sending
* src/ejabberd_sm.erl: Added function route/3, use it in route
table
* src/ejabberd_local.erl: Likewise
* src/ejabberd_s2s.erl: Likewise

* (all): Fixed spelling of word "authentication"

* src/*/Makefile.in: Replaced erlc with @ERLC@

SVN Revision: 285
2004-11-05 21:14:31 +00:00
Alexey Shchepin 7d683b194f * examples/transport-configs/: Transport config examples (thanks
to Sander Devrieze)

SVN Revision: 284
2004-10-15 19:02:51 +00:00
Alexey Shchepin ed31fea454 * src/msgs/de.msg: German translation (thanks to Marina Hahn)
SVN Revision: 283
2004-10-15 17:03:22 +00:00
Alexey Shchepin 476a36cd58 * src/win32/: Updated (thanks to Sergei Golovan)
* src/msgs/es.msg: Updated (thanks to Badlop)

* src/mod_irc/iconv_erl.c: Bugfix (thanks to Jacek Konieczny)

SVN Revision: 282
2004-10-12 20:06:38 +00:00
Alexey Shchepin e9f6529ead * src/tls/Makefile.win32: Added (thanks to Sergei Golovan)
* src/win32/: Updated (thanks to Sergei Golovan)

SVN Revision: 281
2004-10-10 17:15:24 +00:00
Alexey Shchepin e852a3c868 * src/msgs/uk.msg: Updated (thanks to Sergei Golovan)
SVN Revision: 280
2004-10-09 20:52:58 +00:00
Alexey Shchepin 4c7d56f462 * src/msgs/uk.msg: Updated (thanks to Sergei Golovan)
SVN Revision: 279
2004-10-09 20:42:42 +00:00
Alexey Shchepin 8ec7e54128 *** empty log message ***
SVN Revision: 278
2004-10-09 20:19:19 +00:00
Alexey Shchepin eeb109e75a * src/msgs/nl.msg: Updated (thanks to Sander Devrieze)
* src/msgs/ua.msg: Renamed to uk.msg

* COPYING: Added permission to link with OpenSSL

SVN Revision: 277
2004-10-09 20:15:49 +00:00
Alexey Shchepin 576db30b34 * src/msgs/ua.msg: Updated (thanks to Sergei Golovan)
SVN Revision: 276
2004-10-08 21:39:10 +00:00
Alexey Shchepin 134dec5dbb * src/mod_muc/mod_muc_room.erl: Fixed room destroying
* src/ejabberd.cfg.example: Updated

* src/ejabberd_sm.erl: Fixed message routing when all resources
have negative priority

* src/msgs/*.msg: Updated (thanks to Sergei Golovan)

* src/web/ejabberd_web_admin.erl: Table titles now bold (thanks to
Sergei Golovan)

SVN Revision: 275
2004-10-08 20:40:29 +00:00
Alexey Shchepin f327b06ed7 * doc/guide.tex: Updated
SVN Revision: 274
2004-10-06 15:07:21 +00:00
Alexey Shchepin 379ba26e85 * src/ejabberd_s2s_out.erl: Fixed socket closing condition
SVN Revision: 273
2004-10-06 14:12:04 +00:00
Alexey Shchepin b5e8850de9 * src/web/ejabberd_http_poll.erl: Properly handle bad requests
* src/web/ejabberd_web_admin.erl: Ported features from J-EAI

SVN Revision: 272
2004-10-05 19:31:17 +00:00
Alexey Shchepin 34de660c44 * src/web/ejabberd_http.erl: Fixed processing of POST body for
HTTP Polling

* src/web/ejabberd_http.erl: Support for "Connection" HTTP header
(thanks to Sergei Golovan)

* src/translate.erl: Much better handling of xml:lang (thanks to
Sergei Golovan)

SVN Revision: 271
2004-09-30 21:54:39 +00:00
Alexey Shchepin db824bfc64 * src/ejabberd_listener.erl: Check result of controlling_process
SVN Revision: 270
2004-09-29 21:10:40 +00:00
Alexey Shchepin 0e2af703bd * src/web/ejabberd_http.erl: Bugfix
SVN Revision: 269
2004-09-29 14:09:02 +00:00
Alexey Shchepin f17f0dac12 * src/Makefile.in: Updated (thanks to Badlop)
SVN Revision: 268
2004-09-27 18:54:17 +00:00
Alexey Shchepin cbcb2bd3a6 * src/aclocal.m4: Better expat and openssl detection (thanks to
Anton Vanin)

* src/**/Makefile.in: Updated (thanks to Anton Vanin)
* src/configure.ac: Likewise

SVN Revision: 267
2004-09-26 20:46:43 +00:00
Alexey Shchepin 4e7e67c8b5 * src/jlib.hrl: Added namespace for iq-register stream feature
* src/ejabberd_c2s.erl: Send iq-register feature

* src/ejabberd_config.erl: Config file can be configured from the
command line (thanks to Mickael Remond)

* src/web/ejabberd_http.erl: Added SSL support (thanks to Sergei
Golovan)

* src/msgs/*.msg: Updated (thanks to Sergei Golovan)

* src/jlib.hrl: Updated error codes (thanks to Sergei Golovan)
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 266
2004-09-25 20:52:20 +00:00
Alexey Shchepin 6db9c2630d * src/mod_muc/mod_muc_room.erl: Send password in room invitation
(thanks to Sergei Golovan)

* src/mod_disco.erl: Added registration of sm features and nodes
(thanks to Sergei Golovan)
* src/mod_vcard.erl: Register vcard-temp feature (thanks to Sergei
Golovan)

* src/jlib.erl: Added functions now_to_utc_string/1,
now_to_local_string/1, and datetime_string_to_timestamp/1 (thanks
to Sergei Golovan)
* src/mod_muc/mod_muc_room.erl: Use time parsing functions from
jlib (thanks to Sergei Golovan)

* ejabberd/src/mod_pubsub/mod_pubsub.erl: Bugfix (thanks to
Mickael Remond)

* src/mod_pubsub/mod_pubsub.erl: Bugfix

SVN Revision: 265
2004-09-17 19:52:59 +00:00
Alexey Shchepin e0ede61e0f * tools/ejabberdctl: Added call to "exec" (thanks to Sergei
Golovan)

* src/msgs/ru.msg: Updated (thanks to Sergei Golovan)

* src/mod_vcard.erl: Support for searching of prefix substring and
limiting of result items (thanks to Sergei Golovan)

* src/mod_offline.erl: Support for message expiration (JEP-0023)
(thanks to Sergei Golovan)
* src/jlib.hrl: Added NS_EXPIRE macros (thanks to Sergei Golovan)

* src/ejabberd_logger_h.erl: Added reopen_log/0 (thanks to Sergei
Golovan)

* src/ejabberd_ctl.erl: Added return codes, updated "reopen-log"
command, added "delete-expired-messages" and "status" commands
(thanks to Sergei Golovan)

* doc/guide.tex: Updated (thanks to Sergei Golovan)

SVN Revision: 264
2004-09-10 20:57:00 +00:00
Alexey Shchepin 210a9a689b * doc/guide.tex: Fix (thanks to Sander Devrieze)
SVN Revision: 263
2004-08-27 21:02:59 +00:00
Alexey Shchepin 1f3eb68e48 * src/xml_stream.erl: Few optimizations
SVN Revision: 262
2004-08-26 21:47:33 +00:00
Alexey Shchepin 6755925676 * src/mod_service_log.erl: Support for logging of user packets via
external service (e.g. bandersnatch)
* doc/guide.tex: Updated

SVN Revision: 261
2004-08-24 20:11:01 +00:00
Alexey Shchepin d543a63e9b * src/mod_offline.erl: Use offline_subscription_hook
SVN Revision: 260
2004-08-23 20:47:15 +00:00
Alexey Shchepin 4103f30812 * src/mod_offline.erl: Added entire table locking on large message
queue

* src/ejabberd_sm.erl: Added offline_subscription_hook
* src/mod_offline.erl: Use offline_subscription_hook

* src/configure.erl: Updated (thanks to Sergei Golovan)
* src/Makefile.win32: Likewise
* src/tls/Makefile.win32: Likewise
* src/win32/: Likewise

* src/mod_announce.erl: Added announce to all users (thanks to
Sergei Golovan)
* doc/guide.tex: Updated (thanks to Sergei Golovan)

SVN Revision: 259
2004-08-22 21:54:14 +00:00
Alexey Shchepin ea322cd493 * src/msgs/nl.msg: Updated (thanks to Sander Devrieze)
SVN Revision: 258
2004-08-15 22:02:14 +00:00
Alexey Shchepin 69225f9e14 * src/web/ejabberd_http_poll.erl: Fixed sending of Set-Cookie
header

SVN Revision: 257
2004-08-15 21:18:53 +00:00
Alexey Shchepin d77a936b32 * src/ejabberd_c2s.erl: Bugfix in resend_offline_messages/1
* src/mod_announce.erl: New module to manage announce messages
(thanks to Sergei Golovan)

* src/ejabberd_local.erl: Moved processing of announce messages to
mod_announce (thanks to Sergei Golovan)

* src/ejabberd_c2s.erl: Added several hooks

* src/ejabberd_hooks.erl: Fixed run_fold (thanks to Sergei
Golovan)

* src/ejabberd.cfg.example: Updated (thanks to Sergei Golovan)

* doc/guide.tex: Updated (thanks to Sergei Golovan)

SVN Revision: 256
2004-08-12 22:34:19 +00:00
Alexey Shchepin 357554265e * src/ejabberd_c2s.erl: Use resend_offline_messages_hook to fetch
offline messages
* src/mod_offline.erl: Likewise

* src/mod_offline.erl: Added table locking in
remove_old_messages/1

* src/ejabberd_sm.erl: Use offline_message_hook to store offline
messages
* src/mod_offline.erl: Likewise

* src/ejabberd_hooks.erl: Hooks support
* src/ejabberd_sup.erl: Added ejabberd_hooks

* doc/guide.tex: Updated

* src/ejabberd.cfg.example: Updated

* src/ejabberd_c2s.erl: Changed TLS options (thanks to Sergei
Golovan)

SVN Revision: 255
2004-08-08 19:07:55 +00:00
Alexey Shchepin 0ef537cc6c * src/aclocal.m4: Updated to check for openssl library (thanks to
AV)
* src/configure.ac: Likewise
* src/configure: Likewise
* src/Makefile.in: Likewise
* src/tls/Makefile.in: Likewise

SVN Revision: 254
2004-08-05 20:46:24 +00:00
Alexey Shchepin a8f4e84503 * src/web/ejabberd_web_admin.erl: Added user's roster page
* src/mod_irc/mod_irc_connection.erl: Bugfix

SVN Revision: 253
2004-08-02 22:17:05 +00:00
Alexey Shchepin 73d7e1161e * src/tls/tls.erl: Added recv_data/2 function
* src/jlib.erl: Added NS_TLS macro

* src/ejabberd_receiver.erl: Support for STARTTLS
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 252
2004-08-01 20:12:20 +00:00
Alexey Shchepin 6cd02b9714 * examples/extauth/check_pass_null.pl: A reference "null"
implementation of external authentification script (thanks to Leif
Johansson)

* src/extauth.erl: Support for external authentification
(thanks to Leif Johansson)
* src/ejabberd_auth.erl: Likewise

* src/mod_vcard_ldap.erl: A drop-in replacement for mod_vcard.erl
which uses ldap for JUD and vCard (thanks to Leif Johansson)

SVN Revision: 251
2004-07-30 21:09:55 +00:00
Alexey Shchepin 76f00658f2 * src/tls/tls_drv.c: Added freeing of SSL stuff
* src/xml_stream.erl: Added start/2 function
* src/ejabberd_receiver.erl: Now using xml_stream:start/2

SVN Revision: 250
2004-07-28 20:08:53 +00:00
Alexey Shchepin e10fc255aa * src/tls/tls.erl: Updated
SVN Revision: 249
2004-07-26 22:37:24 +00:00
Alexey Shchepin 3377c54ecd *** empty log message ***
SVN Revision: 248
2004-07-26 16:45:38 +00:00
Alexey Shchepin 4b2919c207 * src/tls/: Library for TLS support (not completed)
* src/ejabberd_auth.erl: Now uses two LDAP connections

* src/ejabberd_c2s.erl: Return resource on get_presence request
(thanks to Mickael Remond)

* src/mod_configure2.erl: Bugfix (thanks to Sergei Golovan)

* src/msgs/ua.msg: New Ukrainian translation (thanks to usercard)

* src/msgs/nl.msg: Updated (thanks to Sander Devrieze)

SVN Revision: 247
2004-07-25 21:27:56 +00:00
Alexey Shchepin 96cfe08558 * src/eldap/eldap.erl: Bugfix
SVN Revision: 246
2004-07-23 14:24:09 +00:00
447 changed files with 215091 additions and 27164 deletions
+38
View File
@@ -0,0 +1,38 @@
#
# You can add personal rules in your file .git/info/exclude
*.swp
*~
/contrib/extract_translations/extract_translations.beam
/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/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
+3
View File
@@ -1,3 +1,6 @@
As a special exception, the authors give permission to link this program
with the OpenSSL library and distribute the resulting binary.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
-1328
View File
File diff suppressed because it is too large Load Diff
+54
View File
@@ -0,0 +1,54 @@
ejabberd - High-Performance Enterprise Instant Messaging Server
Quickstart guide
0. Requirements
To compile ejabberd you need:
- GNU Make
- GCC
- Libexpat 1.95 or higher
- Erlang/OTP R10B-9 or higher. Recommended: R13B04 and R14B04.
Avoid R14A and R14B.
- 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).
- GNU Iconv 1.8 or higher, for the IRC Transport
(mod_irc). Optional. Not needed on systems with GNU Libc.
- ImageMagick's Convert program. Optional. For CAPTCHA challenges.
- exmpp 0.9.6 or higher. Optional. For import/export XEP-0227 files.
1. Compile and install on *nix systems
To compile ejabberd, go to the directory src/ and execute the commands:
./configure
make
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
+21
View File
@@ -0,0 +1,21 @@
extract_translations - auxiliary tool that extracts lines to be translated
from ejabberd source tree.
Building:
erlc extract_translations.erl
Invoking 1:
erl -noinput -s extract_translations -extra dirname message_file
where dirname is the directory "src" in ejabberd's source tree root,
message_file is a file with translated messages (src/msgs/*.msg).
Result is a list of messages from source files which aren't contained in
message file.
Invoking 2:
erl -noinput -s extract_translations -extra -unused dirname message_file
Result is a list of messages from message file which aren't in source
files anymore.
@@ -0,0 +1,294 @@
%%%----------------------------------------------------------------------
%%% File : extract_translations.erl
%%% Author : Sergei Golovan <sgolovan@nes.ru>
%%% Purpose : Auxiliary tool for interface/messages translators
%%% Created : 23 Apr 2005 by Sergei Golovan <sgolovan@nes.ru>
%%% Id : $Id$
%%%----------------------------------------------------------------------
-module(extract_translations).
-author('sgolovan@nes.ru').
-export([start/0]).
-define(STATUS_SUCCESS, 0).
-define(STATUS_ERROR, 1).
-define(STATUS_USAGE, 2).
-include_lib("kernel/include/file.hrl").
start() ->
ets:new(translations, [named_table, public]),
ets:new(translations_obsolete, [named_table, public]),
ets:new(files, [named_table, public]),
ets:new(vars, [named_table, public]),
case init:get_plain_arguments() of
["-srcmsg2po", Dir, File] ->
print_po_header(File),
Status = process(Dir, File, srcmsg2po),
halt(Status);
["-unused", Dir, File] ->
Status = process(Dir, File, unused),
halt(Status);
[Dir, File] ->
Status = process(Dir, File, used),
halt(Status);
_ ->
print_usage(),
halt(?STATUS_USAGE)
end.
process(Dir, File, Used) ->
case load_file(File) of
{error, Reason} ->
io:format("~s: ~s~n", [File, file:format_error(Reason)]),
?STATUS_ERROR;
_ ->
FileList = find_src_files(Dir),
lists:foreach(
fun(F) ->
parse_file(Dir, F, Used)
end, FileList),
case Used of
unused ->
ets:foldl(fun({Key, _}, _) ->
io:format("~p~n", [Key])
end, ok, translations);
srcmsg2po ->
ets:foldl(fun({Key, Trans}, _) ->
print_translation_obsolete(Key, Trans)
end, ok, translations_obsolete);
_ ->
ok
end,
?STATUS_SUCCESS
end.
parse_file(Dir, File, Used) ->
ets:delete_all_objects(vars),
case epp:parse_file(File, [Dir, filename:dirname(File) | code:get_path()], []) of
{ok, Forms} ->
lists:foreach(
fun(F) ->
parse_form(Dir, File, F, Used)
end, Forms);
_ ->
ok
end.
parse_form(Dir, File, Form, Used) ->
case Form of
%%{undefined, Something} ->
%% io:format("Undefined: ~p~n", [Something]);
{call,
_,
{remote, _, {atom, _, translate}, {atom, _, translate}},
[_, {string, Line, Str}]
} ->
process_string(Dir, File, Line, Str, Used);
{call,
_,
{remote, _, {atom, _, translate}, {atom, _, translate}},
[_, {var, _, Name}]
} ->
case ets:lookup(vars, Name) of
[{_Name, Value, Line}] ->
process_string(Dir, File, Line, Value, Used);
_ ->
ok
end;
{match,
_,
{var, _, Name},
{string, Line, Value}
} ->
ets:insert(vars, {Name, Value, Line});
L when is_list(L) ->
lists:foreach(
fun(F) ->
parse_form(Dir, File, F, Used)
end, L);
T when is_tuple(T) ->
lists:foreach(
fun(F) ->
parse_form(Dir, File, F, Used)
end, tuple_to_list(T));
_ ->
ok
end.
process_string(_Dir, _File, _Line, "", _Used) ->
ok;
process_string(_Dir, File, Line, Str, Used) ->
case {ets:lookup(translations, Str), Used} of
{[{_Key, _Trans}], unused} ->
ets:delete(translations, Str);
{[{_Key, _Trans}], used} ->
ok;
{[{_Key, Trans}], srcmsg2po} ->
ets:delete(translations_obsolete, Str),
print_translation(File, Line, Str, Trans);
{_, used} ->
case ets:lookup(files, File) of
[{_}] ->
ok;
_ ->
io:format("~n% ~s~n", [File]),
ets:insert(files, {File})
end,
case Str of
[] -> ok;
_ -> io:format("{~p, \"\"}.~n", [Str])
end,
ets:insert(translations, {Str, ""});
{_, srcmsg2po} ->
case ets:lookup(files, File) of
[{_}] ->
ok;
_ ->
ets:insert(files, {File})
end,
ets:insert(translations, {Str, ""}),
print_translation(File, Line, Str, "");
_ ->
ok
end.
load_file(File) ->
case file:consult(File) of
{ok, Terms} ->
lists:foreach(
fun({Orig, Trans}) ->
case Trans of
"" ->
ok;
_ ->
ets:insert(translations, {Orig, Trans}),
ets:insert(translations_obsolete, {Orig, Trans})
end
end, Terms);
Err ->
Err
end.
find_src_files(Dir) ->
case file:list_dir(Dir) of
{ok, FileList} ->
recurse_filelist(
lists:map(
fun(F) ->
filename:join(Dir, F)
end, FileList));
_ ->
[]
end.
recurse_filelist(FileList) ->
recurse_filelist(FileList, []).
recurse_filelist([], Acc) ->
lists:reverse(Acc);
recurse_filelist([H | T], Acc) ->
case file:read_file_info(H) of
{ok, #file_info{type = directory}} ->
recurse_filelist(T, lists:reverse(find_src_files(H)) ++ Acc);
{ok, #file_info{type = regular}} ->
case string:substr(H, string:len(H) - 3) of
".erl" ->
recurse_filelist(T, [H | Acc]);
".hrl" ->
recurse_filelist(T, [H | Acc]);
_ ->
recurse_filelist(T, Acc)
end;
_ ->
recurse_filelist(T, Acc)
end.
print_usage() ->
io:format(
"Usage: extract_translations [-unused] dir file~n"
"~n"
"Example:~n"
" extract_translations . ./msgs/ru.msg~n"
).
%%%
%%% Gettext
%%%
print_po_header(File) ->
MsgProps = get_msg_header_props(File),
{Language, [LastT | AddT]} = prepare_props(MsgProps),
application:load(ejabberd),
{ok, Version} = application:get_key(ejabberd, vsn),
print_po_header(Version, Language, LastT, AddT).
get_msg_header_props(File) ->
{ok, F} = file:open(File, [read]),
Lines = get_msg_header_props(F, []),
file:close(F),
Lines.
get_msg_header_props(F, Lines) ->
String = io:get_line(F, ""),
case io_lib:fread("% ", String) of
{ok, [], RemString} ->
case io_lib:fread("~s", RemString) of
{ok, [Key], Value} when Value /= "\n" ->
%% The first character in Value is a blankspace:
%% And the last characters are 'slash n'
ValueClean = string:substr(Value, 2, string:len(Value)-2),
get_msg_header_props(F, Lines ++ [{Key, ValueClean}]);
_ ->
get_msg_header_props(F, Lines)
end;
_ ->
Lines
end.
prepare_props(MsgProps) ->
Language = proplists:get_value("Language:", MsgProps),
Authors = proplists:get_all_values("Author:", MsgProps),
{Language, Authors}.
print_po_header(Version, Language, LastTranslator, AdditionalTranslatorsList) ->
AdditionalTranslatorsString = build_additional_translators(AdditionalTranslatorsList),
HeaderString =
"msgid \"\"\n"
"msgstr \"\"\n"
"\"Project-Id-Version: " ++ Version ++ "\\n\"\n"
++ "\"X-Language: " ++ Language ++ "\\n\"\n"
"\"Last-Translator: " ++ LastTranslator ++ "\\n\"\n"
++ AdditionalTranslatorsString ++
"\"MIME-Version: 1.0\\n\"\n"
"\"Content-Type: text/plain; charset=UTF-8\\n\"\n"
"\"Content-Transfer-Encoding: 8bit\\n\"\n",
io:format("~s~n", [HeaderString]).
build_additional_translators(List) ->
lists:foldl(
fun(T, Str) ->
Str ++ "\"X-Additional-Translator: " ++ T ++ "\\n\"\n"
end,
"",
List).
print_translation(File, Line, Str, StrT) ->
StrQ = ejabberd_regexp:greplace(Str, "\\\"", "\\\\\""),
StrTQ = ejabberd_regexp:greplace(StrT, "\\\"", "\\\\\""),
io:format("#: ~s:~p~nmsgid \"~s\"~nmsgstr \"~s\"~n~n", [File, Line, StrQ, StrTQ]).
print_translation_obsolete(Str, StrT) ->
File = "unknown.erl",
Line = 1,
StrQ = ejabberd_regexp:greplace(Str, "\\\"", "\\\\\""),
StrTQ = ejabberd_regexp:greplace(StrT, "\\\"", "\\\\\""),
io:format("#: ~s:~p~n#~~ msgid \"~s\"~n#~~ msgstr \"~s\"~n~n", [File, Line, StrQ, StrTQ]).
+363
View File
@@ -0,0 +1,363 @@
#!/bin/bash
# Frontend for ejabberd's extract_translations.erl
# by Badlop
# How to create template files for a new language:
# NEWLANG=zh
# cp msgs/ejabberd.pot msgs/$NEWLANG.po
# echo \{\"\",\"\"\}. > msgs/$NEWLANG.msg
# ../../extract_translations/prepare-translation.sh -updateall
prepare_dirs ()
{
# Where is Erlang binary
ERL=`which erl`
EJA_SRC_DIR=$EJA_DIR/src/
EJA_MSGS_DIR=$EJA_SRC_DIR/msgs/
EXTRACT_DIR=$EJA_DIR/contrib/extract_translations/
EXTRACT_ERL=$EXTRACT_DIR/extract_translations.erl
EXTRACT_BEAM=$EXTRACT_DIR/extract_translations.beam
SRC_DIR=$RUN_DIR/src
MSGS_DIR=$SRC_DIR/msgs
if !([[ -n $EJA_DIR ]])
then
echo "ejabberd dir does not exist: $EJA_DIR"
fi
if !([[ -x $EXTRACT_BEAM ]])
then
sh -c "cd $EXTRACT_DIR; $ERL -compile $EXTRACT_ERL"
fi
}
extract_lang ()
{
MSGS_FILE=$1
MSGS_FILE2=$MSGS_FILE.translate
MSGS_PATH=$MSGS_DIR/$MSGS_FILE
MSGS_PATH2=$MSGS_DIR/$MSGS_FILE2
echo -n "Extracting language strings for '$MSGS_FILE':"
echo -n " new..."
cd $SRC_DIR
$ERL -pa $EXTRACT_DIR -noinput -noshell -s extract_translations -s init stop -extra . $MSGS_PATH >$MSGS_PATH.new
sed -e 's/^% \.\//% /g;' $MSGS_PATH.new > $MSGS_PATH.new2
mv $MSGS_PATH.new2 $MSGS_PATH.new
echo -n " old..."
$ERL -pa $EXTRACT_DIR -noinput -noshell -s extract_translations -s init stop -extra -unused . $MSGS_PATH >$MSGS_PATH.unused
find_unused_full $MSGS_FILE $MSGS_FILE.unused
echo "" >$MSGS_PATH2
echo " ***** Translation file for ejabberd ***** " >>$MSGS_PATH2
echo "" >>$MSGS_PATH2
echo "" >>$MSGS_PATH2
echo " *** New strings: Can you please translate them? *** " >>$MSGS_PATH2
cat $MSGS_PATH.new >>$MSGS_PATH2
echo "" >>$MSGS_PATH2
echo "" >>$MSGS_PATH2
echo " *** Unused strings: They will be removed automatically *** " >>$MSGS_PATH2
cat $MSGS_PATH.unused.full >>$MSGS_PATH2
echo "" >>$MSGS_PATH2
echo "" >>$MSGS_PATH2
echo " *** Already translated strings: you can also modify any of them if you want *** " >>$MSGS_PATH2
echo "" >>$MSGS_PATH2
cat $MSGS_PATH.old_cleaned >>$MSGS_PATH2
echo " ok"
rm $MSGS_PATH.new
rm $MSGS_PATH.old_cleaned
rm $MSGS_PATH.unused.full
}
extract_lang_all ()
{
cd $MSGS_DIR
for i in $( ls *.msg ) ; do
extract_lang $i;
done
echo -e "File\tMissing\tLanguage\t\tLast translator"
echo -e "----\t-------\t--------\t\t---------------"
cd $MSGS_DIR
for i in $( ls *.msg ) ; do
MISSING=`cat $i.translate | grep "\", \"\"}." | wc -l`
LANGUAGE=`grep "X-Language:" $i.translate | sed 's/% Language: //g'`
LASTAUTH=`grep "Author:" $i.translate | head -n 1 | sed 's/% Author: //g'`
echo -e "$i\t$MISSING\t$LANGUAGE\t$LASTAUTH"
done
cd $MSGS_DIR
REVISION=`git describe --always`
zip $HOME/ejabberd-langs-$REVISION.zip *.translate;
rm *.translate
}
find_unused_full ()
{
DATFILE=$1
DATFILEI=$1.old_cleaned
DELFILE=$2
cd msgs
DATFILE1=$DATFILE.t1
DATFILE2=$DATFILE.t2
DELFILE1=$DELFILE.t1
DELFILE2=$DELFILE.t2
DELFILEF=$DATFILE.unused.full
echo "" >$DELFILEF
grep -v "\\\\" $DELFILE >$DELFILE2
echo ENDFILEMARK >>$DELFILE2
cp $DATFILE $DATFILEI
cp $DATFILE $DATFILE2
cp $DELFILE2 $DELFILE1
STRING=`head -1 $DELFILE1`
until [[ $STRING == ENDFILEMARK ]]; do
cp $DELFILE2 $DELFILE1
cp $DATFILE2 $DATFILE1
STRING=`head -1 $DELFILE1`
cat $DATFILE1 | grep "$STRING" >>$DELFILEF
cat $DATFILE1 | grep -v "$STRING" >$DATFILE2
cat $DELFILE1 | grep -v "$STRING" >$DELFILE2
done
mv $DATFILE2 $DATFILEI
rm -f $MSGS_PATH.t1
rm $MSGS_PATH.unused
rm -f $MSGS_PATH.unused.t1
rm $MSGS_PATH.unused.t2
cd ..
}
extract_lang_srcmsg2po ()
{
LANG=$1
LANG_CODE=$LANG.$PROJECT
MSGS_PATH=$MSGS_DIR/$LANG_CODE.msg
PO_PATH=$MSGS_DIR/$LANG_CODE.po
echo $MSGS_PATH
$ERL -pa $EXTRACT_DIR -pa $SRC_DIR -pa $EJA_SRC_DIR -pa /lib/ejabberd/include -noinput -noshell -s extract_translations -s init stop -extra -srcmsg2po . $MSGS_PATH >$PO_PATH.1
sed -e 's/ \[\]$/ \"\"/g;' $PO_PATH.1 > $PO_PATH.2
msguniq --sort-by-file $PO_PATH.2 --output-file=$PO_PATH
rm $PO_PATH.*
}
extract_lang_src2pot ()
{
LANG_CODE=$PROJECT
MSGS_PATH=$MSGS_DIR/$LANG_CODE.msg
POT_PATH=$MSGS_DIR/$LANG_CODE.pot
echo -n "" >$MSGS_PATH
echo "% Language: Language Name" >>$MSGS_PATH
echo "% Author: Translator name and contact method" >>$MSGS_PATH
echo "" >>$MSGS_PATH
cd $SRC_DIR
$ERL -pa $EXTRACT_DIR -pa $SRC_DIR -pa $EJA_SRC_DIR -pa /lib/ejabberd/include -noinput -noshell -s extract_translations -s init stop -extra -srcmsg2po . $MSGS_PATH >$POT_PATH.1
sed -e 's/ \[\]$/ \"\"/g;' $POT_PATH.1 > $POT_PATH.2
#msguniq --sort-by-file $POT_PATH.2 $EJA_MSGS_DIR --output-file=$POT_PATH
msguniq --sort-by-file $POT_PATH.2 --output-file=$POT_PATH
rm $POT_PATH.*
rm $MSGS_PATH
# If the project is a specific module, not the main ejabberd
if [[ $PROJECT != ejabberd ]] ; then
# Remove from project.pot the strings that are already present in the general ejabberd
EJABBERD_MSG_FILE=$EJA_MSGS_DIR/es.po # This is just some file with translated strings
POT_PATH_TEMP=$POT_PATH.temp
msgattrib --set-obsolete --only-file=$EJABBERD_MSG_FILE -o $POT_PATH_TEMP $POT_PATH
mv $POT_PATH_TEMP $POT_PATH
fi
}
extract_lang_popot2po ()
{
LANG_CODE=$1
PO_PATH=$MSGS_DIR/$LANG_CODE.po
POT_PATH=$MSGS_DIR/$PROJECT.pot
msgmerge $PO_PATH $POT_PATH >$PO_PATH.translate 2>/dev/null
mv $PO_PATH.translate $PO_PATH
}
extract_lang_po2msg ()
{
LANG_CODE=$1
PO_PATH=$LANG_CODE.po
MS_PATH=$PO_PATH.ms
MSGID_PATH=$PO_PATH.msgid
MSGSTR_PATH=$PO_PATH.msgstr
MSGS_PATH=$LANG_CODE.msg
cd $MSGS_DIR
# Check PO has correct ~
# Let's convert to C format so we can use msgfmt
PO_TEMP=$LANG_CODE.po.temp
cat $PO_PATH | sed 's/%/perc/g' | sed 's/~/%/g' | sed 's/#:.*/#, c-format/g' >$PO_TEMP
msgfmt $PO_TEMP --check-format
result=$?
rm $PO_TEMP
if [ $result -ne 0 ] ; then
exit 1
fi
msgattrib $PO_PATH --translated --no-fuzzy --no-obsolete --no-location --no-wrap | grep "^msg" | tail --lines=+3 >$MS_PATH
grep "^msgid" $PO_PATH.ms | sed 's/^msgid //g' >$MSGID_PATH
grep "^msgstr" $PO_PATH.ms | sed 's/^msgstr //g' >$MSGSTR_PATH
paste $MSGID_PATH $MSGSTR_PATH --delimiter=, | awk '{print "{" $0 "}."}' | sort -g >$MSGS_PATH
rm $MS_PATH
rm $MSGID_PATH
rm $MSGSTR_PATH
}
extract_lang_updateall ()
{
echo "Generating POT"
extract_lang_src2pot
cd $MSGS_DIR
echo ""
echo -e "File Missing Language Last translator"
echo -e "---- ------- -------- ---------------"
for i in $( ls *.msg ) ; do
LANG_CODE=${i%.msg}
echo -n $LANG_CODE | awk '{printf "%-6s", $1 }'
# Convert old MSG file to PO
PO=$LANG_CODE.po
[ -f $PO ] || extract_lang_srcmsg2po $LANG_CODE
extract_lang_popot2po $LANG_CODE
extract_lang_po2msg $LANG_CODE
MISSING=`msgfmt --statistics $PO 2>&1 | awk '{printf "%5s", $4 }'`
echo -n " $MISSING"
LANGUAGE=`grep "X-Language:" $PO | sed 's/\"X-Language: //g' | sed 's/\\\\n\"//g' | awk '{printf "%-12s", $1}'`
echo -n " $LANGUAGE"
LASTAUTH=`grep "Last-Translator" $PO | sed 's/\"Last-Translator: //g' | sed 's/\\\\n\"//g'`
echo " $LASTAUTH"
done
echo ""
rm messages.mo
cd ..
}
translation_instructions ()
{
echo ""
echo " A new file has been created for you, with the current, the new and the deprecated strings:"
echo " $MSGS_PATH2"
echo ""
echo " At the end of that file you will find the strings you must update:"
echo " - Untranslated strings are like this: {"March", ""}."
echo " To translate the string, add the text inside the commas. Example:"
echo " {"March", "Marzo"}."
echo " - Old strings that are not used: "Woowoa""
echo " Search the entire file for those strings and remove them"
echo ""
echo " Once you have translated all the strings and removed all the old ones,"
echo " rename the file to overwrite the previous one:"
echo " $MSGS_PATH"
}
EJA_DIR=`pwd`/..
RUN_DIR=`pwd`/..
PROJECT=ejabberd
while [ $# -ne 0 ] ; do
PARAM=$1
shift
case $PARAM in
--) break ;;
-project)
PROJECT=$1
shift
;;
-ejadir)
EJA_DIR=$1
shift
;;
-rundir)
RUN_DIR=$1
shift
;;
-lang)
LANGU=$1
prepare_dirs
extract_lang $LANGU
shift
;;
-langall)
prepare_dirs
extract_lang_all
;;
-srcmsg2po)
LANG_CODE=$1
prepare_dirs
extract_lang_srcmsg2po $LANG_CODE
shift
;;
-popot2po)
LANG_CODE=$1
prepare_dirs
extract_lang_popot2po $LANG_CODE
shift
;;
-src2pot)
prepare_dirs
extract_lang_src2pot
;;
-po2msg)
LANG_CODE=$1
prepare_dirs
extract_lang_po2msg $LANG_CODE
shift
;;
-updateall)
prepare_dirs
extract_lang_updateall
;;
*)
echo "Options:"
echo " -langall"
echo " -lang LANGUAGE_FILE"
echo " -srcmsg2po LANGUAGE Construct .msg file using source code to PO file"
echo " -src2pot Generate template POT file from source code"
echo " -popot2po LANGUAGE Update PO file with template POT file"
echo " -po2msg LANGUAGE Export PO file to MSG file"
echo " -updateall Generate POT and update all PO"
echo ""
echo "Example:"
echo " ./prepare-translation.sh -lang es.msg"
exit 0
;;
esac
done
+75
View File
@@ -0,0 +1,75 @@
# $Id$
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
@echo "% mod_admin_p1 commands list."
html: guide.html dev.html features.html commercial.html
pdf: guide.pdf features.pdf commercial.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
[ ! -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
commercial.html: commercial.tex
./mod_admin_p1_commands.sh
hevea -fix -pedantic commercial.tex
commercial.pdf: commercial.tex
./mod_admin_p1_commands.sh
pdflatex commercial.tex
pdflatex commercial.tex
pdflatex commercial.tex
makeindex commercial.idx
pdflatex commercial.tex
+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,true},{private,true},{def,{vsn,"$(VSN)"}},{stylesheet,"process-one.css"},{overview,"$(DOCDIR)/overview.edoc"}]' -s init stop
+10
View File
@@ -0,0 +1,10 @@
@author Mickael Remond <mickael.remond@process-one.net>
[http://www.process-one.net/]
@copyright 2012 ProcessOne
@version {@vsn}, {@date} {@time}
@title ejabberd Development API Documentation
@doc
== Introduction ==
TODO: Insert content from Jerome documentation.
+92
View File
@@ -0,0 +1,92 @@
html, body {
font-family: Verdana, sans-serif;
color: #000;
background-color: #fff;
}
h1 {
color: #4a5389;
border-bottom: solid 1px #000;
}
h2 {
font-size: 24px;
text-align: right;
color: #4a5389;
border-bottom: 1px solid #000;
}
h3 {
font-size: 18px;
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;
}
+6184
View File
File diff suppressed because it is too large Load Diff
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

+304 -255
View File
@@ -1,162 +1,251 @@
<!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>
<HEAD>
<TITLE>Ejabberd 2.1.11 Developers Guide
</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=ISO8859-1">
<META name="GENERATOR" content="hevea 1.06">
<META http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<META name="GENERATOR" content="hevea 1.10">
<STYLE type="text/css">
.li-itemize{margin:1ex 0ex;}
.li-enumerate{margin:1ex 0ex;}
.dd-description{margin:0ex 0ex 1ex 4ex;}
.dt-description{margin:0ex;}
.toc{list-style:none;}
.thefootnotes{text-align:left;margin:0ex;}
.dt-thefootnotes{margin:0em;}
.dd-thefootnotes{margin:0em 0em 0em 2em;}
.footnoterule{margin:1em auto 1em 0px;width:50%;}
.caption{padding-left:2ex; padding-right:2ex; margin-left:auto; margin-right:auto}
.title{margin:2ex auto;text-align:center}
.center{text-align:center;margin-left:auto;margin-right:auto;}
.flushleft{text-align:left;margin-left:0ex;margin-right:auto;}
.flushright{text-align:right;margin-left:auto;margin-right:0ex;}
DIV TABLE{margin-left:inherit;margin-right:inherit;}
PRE{text-align:left;margin-left:0ex;margin-right:auto;}
BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;}
TD P{margin:0px;}
.boxed{border:1px solid black}
.textboxed{border:1px solid black}
.vbar{border:none;width:2px;background-color:black;}
.hbar{border:none;height:2px;width:100%;background-color:black;}
.hfill{border:none;height:1px;width:200%;background-color:black;}
.vdisplay{border-collapse:separate;border-spacing:2px;width:auto; empty-cells:show; border:2px solid red;}
.vdcell{white-space:nowrap;padding:0px;width:auto; border:2px solid green;}
.display{border-collapse:separate;border-spacing:2px;width:auto; border:none;}
.dcell{white-space:nowrap;padding:0px;width:auto; border:none;}
.dcenter{margin:0ex auto;}
.vdcenter{border:solid #FF8000 2px; margin:0ex auto;}
.minipage{text-align:left; margin-left:0em; margin-right:auto;}
.marginpar{border:solid thin black; width:20%; text-align:left;}
.marginparleft{float:left; margin-left:0ex; margin-right:1ex;}
.marginparright{float:right; margin-left:1ex; margin-right:0ex;}
.theorem{text-align:left;margin:1ex auto 1ex 0ex;}
.part{margin:2ex auto;text-align:center}
</STYLE>
</HEAD>
<BODY >
<!--HEVEA command line is: /usr/bin/hevea -charset ISO8859-1 dev.tex -->
<!--HTMLHEAD-->
<!--ENDHTML-->
<!--PREFIX <ARG ></ARG>-->
<!--CUT DEF section 1 -->
<!--HEVEA command line is: /usr/bin/hevea -fix -pedantic dev.tex -->
<!--CUT DEF section 1 --><P><A NAME="titlepage"></A>
</P><TABLE CLASS="title"><TR><TD><H1 CLASS="titlemain">Ejabberd 2.1.11 Developers Guide</H1><H3 CLASS="titlerest">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></TD></TR>
</TABLE><DIV CLASS="center">
<IMG SRC="logo.png" ALT="logo.png">
<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>
</DIV><BLOCKQUOTE CLASS="quotation"><I>I can thoroughly recommend ejabberd for ease of setup &#X2013;
Kevin Smith, Current maintainer of the Psi project</I></BLOCKQUOTE><!--TOC section Contents-->
<H2 CLASS="section"><!--SEC ANCHOR -->Contents</H2><!--SEC END --><UL CLASS="toc"><LI CLASS="li-toc">
<A HREF="#htoc1">1&#XA0;&#XA0;Key Features</A>
</LI><LI CLASS="li-toc"><A HREF="#htoc2">2&#XA0;&#XA0;Additional Features</A>
</LI><LI CLASS="li-toc"><A HREF="#htoc3">3&#XA0;&#XA0;How it Works</A>
<UL CLASS="toc"><LI CLASS="li-toc">
<A HREF="#htoc4">3.1&#XA0;&#XA0;Router</A>
</LI><LI CLASS="li-toc"><A HREF="#htoc5">3.2&#XA0;&#XA0;Local Router</A>
</LI><LI CLASS="li-toc"><A HREF="#htoc6">3.3&#XA0;&#XA0;Session Manager</A>
</LI><LI CLASS="li-toc"><A HREF="#htoc7">3.4&#XA0;&#XA0;S2S Manager</A>
</LI></UL>
</LI><LI CLASS="li-toc"><A HREF="#htoc8">4&#XA0;&#XA0;Authentication</A>
<UL CLASS="toc">
<UL CLASS="toc"><LI CLASS="li-toc">
<A HREF="#htoc9">4.0.1&#XA0;&#XA0;External</A>
</LI></UL>
</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
</LI><LI CLASS="li-toc"><A HREF="#htoc10">5&#XA0;&#XA0;XML Representation</A>
</LI><LI CLASS="li-toc"><A HREF="#htoc11">6&#XA0;&#XA0;Module <TT>xml</TT></A>
</LI><LI CLASS="li-toc"><A HREF="#htoc12">7&#XA0;&#XA0;Module <TT>xml_stream</TT></A>
</LI><LI CLASS="li-toc"><A HREF="#htoc13">8&#XA0;&#XA0;Modules</A>
<UL CLASS="toc"><LI CLASS="li-toc">
<A HREF="#htoc14">8.1&#XA0;&#XA0;Module gen_iq_handler</A>
</LI><LI CLASS="li-toc"><A HREF="#htoc15">8.2&#XA0;&#XA0;Services</A>
</LI></UL>
</LI></UL><P>Introduction
<A NAME="intro"></A></P><P><TT>ejabberd</TT> is a free and open source instant messaging server written in <A HREF="http://www.erlang.org/">Erlang/OTP</A>.</P><P><TT>ejabberd</TT> is cross-platform, distributed, fault-tolerant, and based on open standards to achieve real-time communication.</P><P><TT>ejabberd</TT> is designed to be a rock-solid and feature rich XMPP server.</P><P><TT>ejabberd</TT> is suitable for small deployments, whether they need to be scalable or not, as well as extremely big deployments.</P><!--TOC section Key Features-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc1">1</A>&#XA0;&#XA0;Key Features</H2><!--SEC END --><P>
<A NAME="keyfeatures"></A>
</P><P><TT>ejabberd</TT> is:
</P><UL CLASS="itemize"><LI CLASS="li-itemize">
Cross-platform: <TT>ejabberd</TT> runs under Microsoft Windows and Unix derived systems such as Linux, FreeBSD and NetBSD.</LI><LI CLASS="li-itemize">Distributed: You can run <TT>ejabberd</TT> 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.</LI><LI CLASS="li-itemize">Fault-tolerant: You can deploy an <TT>ejabberd</TT> 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 &#X2018;on the fly&#X2019;.</LI><LI CLASS="li-itemize">Administrator Friendly: <TT>ejabberd</TT> 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:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Comprehensive documentation.
</LI><LI CLASS="li-itemize">Straightforward installers for Linux, Mac OS X, and Windows. </LI><LI CLASS="li-itemize">Web Administration.
</LI><LI CLASS="li-itemize">Shared Roster Groups.
</LI><LI CLASS="li-itemize">Command line administration tool. </LI><LI CLASS="li-itemize">Can integrate with existing authentication mechanisms.
</LI><LI CLASS="li-itemize">Capability to send announce messages.
</LI></UL></LI><LI CLASS="li-itemize">Internationalized: <TT>ejabberd</TT> leads in internationalization. Hence it is very well suited in a globalized world. Related features are:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Translated to 25 languages. </LI><LI CLASS="li-itemize">Support for <A HREF="http://www.ietf.org/rfc/rfc3490.txt">IDNA</A>.
</LI></UL></LI><LI CLASS="li-itemize">Open Standards: <TT>ejabberd</TT> is the first Open Source Jabber server claiming to fully comply to the XMPP standard.
<UL CLASS="itemize"><LI CLASS="li-itemize">
Fully XMPP compliant.
</LI><LI CLASS="li-itemize">XML-based protocol.
</LI><LI CLASS="li-itemize"><A HREF="http://www.ejabberd.im/protocols">Many protocols supported</A>.
</LI></UL></LI></UL><!--TOC section Additional Features-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc2">2</A>&#XA0;&#XA0;Additional Features</H2><!--SEC END --><P>
<A NAME="addfeatures"></A>
</P><P>Moreover, <TT>ejabberd</TT> comes with a wide range of other state-of-the-art features:
</P><UL CLASS="itemize"><LI CLASS="li-itemize">
Modular
<UL CLASS="itemize"><LI CLASS="li-itemize">
Load only the modules you want.
</LI><LI CLASS="li-itemize">Extend <TT>ejabberd</TT> with your own custom modules.
</LI></UL>
</LI><LI CLASS="li-itemize">Security
<UL CLASS="itemize"><LI CLASS="li-itemize">
SASL and STARTTLS for c2s and s2s connections.
</LI><LI CLASS="li-itemize">STARTTLS and Dialback s2s connections.
</LI><LI CLASS="li-itemize">Web Admin accessible via HTTPS secure access.
</LI></UL>
</LI><LI CLASS="li-itemize">Databases
<UL CLASS="itemize"><LI CLASS="li-itemize">
Internal database for fast deployment (Mnesia).
</LI><LI CLASS="li-itemize">Native MySQL support.
</LI><LI CLASS="li-itemize">Native PostgreSQL support.
</LI><LI CLASS="li-itemize">ODBC data storage support.
</LI><LI CLASS="li-itemize">Microsoft SQL Server support. </LI></UL>
</LI><LI CLASS="li-itemize">Authentication
<UL CLASS="itemize"><LI CLASS="li-itemize">
Internal Authentication.
</LI><LI CLASS="li-itemize">PAM, LDAP and ODBC. </LI><LI CLASS="li-itemize">External Authentication script.
</LI></UL>
</LI><LI CLASS="li-itemize">Others
<UL CLASS="itemize"><LI CLASS="li-itemize">
Support for virtual hosting.
</LI><LI CLASS="li-itemize">Compressing XML streams with Stream Compression (<A HREF="http://www.xmpp.org/extensions/xep-0138.html">XEP-0138</A>).
</LI><LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.xmpp.org/extensions/xep-0039.html">XEP-0039</A>).
</LI><LI CLASS="li-itemize">IPv6 support both for c2s and s2s connections.
</LI><LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0045.html">Multi-User Chat</A> module with support for clustering and HTML logging. </LI><LI CLASS="li-itemize">Users Directory based on users vCards.
</LI><LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0060.html">Publish-Subscribe</A> component with support for <A HREF="http://www.xmpp.org/extensions/xep-0163.html">Personal Eventing via Pubsub</A>.
</LI><LI CLASS="li-itemize">Support for web clients: <A HREF="http://www.xmpp.org/extensions/xep-0025.html">HTTP Polling</A> and <A HREF="http://www.xmpp.org/extensions/xep-0206.html">HTTP Binding (BOSH)</A> services.
</LI><LI CLASS="li-itemize">IRC transport.
</LI><LI CLASS="li-itemize">Component support: interface with networks such as AIM, ICQ and MSN installing special tranports.
</LI></UL>
</LI></UL><!--TOC section How it Works-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc3">3</A>&#XA0;&#XA0;How it Works</H2><!--SEC END --><P>
<A NAME="howitworks"></A></P><P>A XMPP 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>
connections, registered services, etc&#X2026;</P><P>Each <TT>ejabberd</TT> node have following modules:
</P><UL CLASS="itemize"><LI CLASS="li-itemize">
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
</LI><LI CLASS="li-itemize">local router.
</LI><LI CLASS="li-itemize">session manager;
</LI><LI CLASS="li-itemize">S2S manager;
</LI></UL><!--TOC subsection Router-->
<H3 CLASS="subsection"><!--SEC ANCHOR --><A NAME="htoc4">3.1</A>&#XA0;&#XA0;Router</H3><!--SEC END --><P>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
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
manager.</P><!--TOC subsection Local Router-->
<H3 CLASS="subsection"><!--SEC ANCHOR --><A NAME="htoc5">3.2</A>&#XA0;&#XA0;Local Router</H3><!--SEC END --><P>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
session manager, else it is processed depending on it&#X2019;s content.</P><!--TOC subsection Session Manager-->
<H3 CLASS="subsection"><!--SEC ANCHOR --><A NAME="htoc6">3.3</A>&#XA0;&#XA0;Session Manager</H3><!--SEC END --><P>This module routes packets to local users. It searches for what user resource
packet must be sent 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
the packet is sent to session manager on that node.</P><!--TOC subsection S2S Manager-->
<H3 CLASS="subsection"><!--SEC ANCHOR --><A NAME="htoc7">3.4</A>&#XA0;&#XA0;S2S Manager</H3><!--SEC END --><P>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
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-->
does not exist, then it is opened and registered.</P><!--TOC section Authentication-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc8">4</A>&#XA0;&#XA0;Authentication</H2><!--SEC END --><!--TOC subsubsection External-->
<H4 CLASS="subsubsection"><!--SEC ANCHOR --><A NAME="htoc9">4.0.1</A>&#XA0;&#XA0;External</H4><!--SEC END --><P>
<A NAME="externalauth"></A>
</P><P>The external authentication script follows
<A HREF="http://www.erlang.org/doc/tutorial/c_portdriver.html">the erlang port driver API</A>.</P><P>That script is supposed to do theses actions, in an infinite loop:
</P><UL CLASS="itemize"><LI CLASS="li-itemize">
read from stdin: AABBBBBBBBB.....
<UL CLASS="itemize"><LI CLASS="li-itemize">
A: 2 bytes of length data (a short in network byte order)
</LI><LI CLASS="li-itemize">B: a string of length found in A that contains operation in plain text
operation are as follows:
<UL CLASS="itemize"><LI CLASS="li-itemize">
auth:User:Server:Password (check if a username/password pair is correct)
</LI><LI CLASS="li-itemize">isuser:User:Server (check if it&#X2019;s a valid user)
</LI><LI CLASS="li-itemize">setpass:User:Server:Password (set user&#X2019;s password)
</LI><LI CLASS="li-itemize">tryregister:User:Server:Password (try to register an account)
</LI><LI CLASS="li-itemize">removeuser:User:Server (remove this account)
</LI><LI CLASS="li-itemize">removeuser3:User:Server:Password (remove this account if the password is correct)
</LI></UL>
</LI></UL>
</LI><LI CLASS="li-itemize">write to stdout: AABB
<UL CLASS="itemize"><LI CLASS="li-itemize">
A: the number 2 (coded as a short, which is bytes length of following result)
</LI><LI CLASS="li-itemize">B: the result code (coded as a short), should be 1 for success/valid, or 0 for failure/invalid
</LI></UL>
</LI></UL><P>Example python script
</P><PRE CLASS="verbatim">#!/usr/bin/python
<H2><A NAME="htoc7">2</A>&nbsp;&nbsp;XML representation</H2><!--SEC END -->
import sys
from struct import *
<A NAME="sec:xmlrepr"></A>
Each XML stanza represented as following tuple:
<PRE>
XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]}
def from_ejabberd():
input_length = sys.stdin.read(2)
(size,) = unpack('&gt;h', input_length)
return sys.stdin.read(size).split(':')
def to_ejabberd(bool):
answer = 0
if bool:
answer = 1
token = pack('&gt;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)
</PRE><!--TOC section XML Representation-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc10">5</A>&#XA0;&#XA0;XML Representation</H2><!--SEC END --><P>
<A NAME="xmlrepr"></A></P><P>Each XML stanza is represented as the following tuple:
</P><PRE CLASS="verbatim">XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]}
Name = string()
Attrs = [Attr]
Attr = {Key, Val}
@@ -164,46 +253,30 @@ XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]}
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;
</PRE><P>E.&#XA0;g. this stanza:
</P><PRE CLASS="verbatim">&lt;message to='test@conference.example.org' 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"},
</PRE><P>is represented as the following structure:
</P><PRE CLASS="verbatim">{xmlelement, "message",
[{"to", "test@conference.example.org"},
{"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><!--TOC section Module <TT>xml</TT>-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc11">6</A>&#XA0;&#XA0;Module <TT>xml</TT></H2><!--SEC END --><P>
<A NAME="xmlmod"></A></P><DL CLASS="description"><DT CLASS="dt-description">
</DT><DD CLASS="dd-description"><CODE>element_to_string(El) -&gt; string()</CODE>
<PRE CLASS="verbatim">El = XMLElement
</PRE>Returns string representation of XML stanza <TT>El</TT>.</DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description"><CODE>crypt(S) -&gt; string()</CODE>
<PRE CLASS="verbatim">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]
characters.</DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description"><CODE>remove_cdata(ECList) -&gt; EList</CODE>
<PRE CLASS="verbatim">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
</PRE><TT>EList</TT> is a list of all non-CDATA elements of ECList.</DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description"><CODE>get_path_s(El, Path) -&gt; Res</CODE>
<PRE CLASS="verbatim">El = XMLElement
Path = [PathItem]
PathItem = PathElem | PathAttr | PathCDATA
PathElem = {elem, Name}
@@ -212,76 +285,61 @@ 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
consider elements of <TT>Path</TT>. Each element is one of:
<DL CLASS="description"><DT CLASS="dt-description">
</DT><DD CLASS="dd-description"><CODE>{elem, Name}</CODE> <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.
</DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description"><CODE>{attr, Name}</CODE> If <TT>El</TT> have attribute <TT>Name</TT>, then
returns value of this attribute, else returns empty string.
</DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description"><CODE>cdata</CODE> Returns CDATA of <TT>El</TT>.
</DD></DL></DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description">TODO:
<PRE CLASS="verbatim"> 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()
</PRE></DD></DL><!--TOC section Module <TT>xml_stream</TT>-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc12">7</A>&#XA0;&#XA0;Module <TT>xml_stream</TT></H2><!--SEC END --><P>
<A NAME="xmlstreammod"></A></P><DL CLASS="description"><DT CLASS="dt-description">
</DT><DD CLASS="dd-description"><CODE>parse_element(Str) -&gt; XMLElement | {error, Err}</CODE>
<PRE CLASS="verbatim">Str = string()
Err = term()
</PRE>Parses <TT>Str</TT> using XML parser, returns either parsed element or error
tuple.
</DD></DL><!--TOC section Modules-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc13">8</A>&#XA0;&#XA0;Modules</H2><!--SEC END --><P>
<A NAME="emods"></A></P><!--TOC subsection Module gen_iq_handler-->
<H3 CLASS="subsection"><!--SEC ANCHOR --><A NAME="htoc14">8.1</A>&#XA0;&#XA0;Module gen_iq_handler</H3><!--SEC END --><P>
<A NAME="geniqhandl"></A></P><P>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.</P><P>In this module the following functions are defined:
</P><DL CLASS="description"><DT CLASS="dt-description">
</DT><DD CLASS="dd-description"><CODE>add_iq_handler(Component, Host, NS, Module, Function, Type)</CODE>
<PRE CLASS="verbatim">Component = Module = Function = atom()
Host = 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).
</PRE>Registers function <CODE>Module:Function</CODE> as handler for IQ packets on
virtual host <CODE>Host</CODE> 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 CLASS="description"><DT CLASS="dt-description">
</DT><DD CLASS="dd-description"><CODE>ejabberd_local</CODE> Handles packets that addressed to server JID;
</DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description"><CODE>ejabberd_sm</CODE> Handles packets that addressed to users bare JIDs.
</DD></DL>
</DD><DT CLASS="dt-description"></DT><DD CLASS="dd-description"><CODE>remove_iq_handler(Component, Host, NS)</CODE>
<PRE CLASS="verbatim">Component = atom()
Host = NS = string()
</PRE>Removes IQ handler on virtual host <CODE>Host</CODE> for namespace <CODE>NS</CODE> from
<CODE>Component</CODE>.
</DD></DL><P>Handler function must have the following type:
</P><DL CLASS="description"><DT CLASS="dt-description">
</DT><DD CLASS="dd-description"><CODE>Module:Function(From, To, IQ)</CODE>
<PRE CLASS="verbatim">From = To = jid()
</PRE></DD></DL><PRE CLASS="verbatim">-module(mod_cputime).
-behaviour(gen_mod).
-export([start/1,
stop/0,
-export([start/2,
stop/1,
process_local_iq/3]).
-include("ejabberd.hrl").
@@ -289,13 +347,13 @@ From = To = jid()
-define(NS_CPUTIME, "ejabberd:cputime").
start(Opts) -&gt;
start(Host, Opts) -&gt;
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() -&gt;
gen_iq_handler:remove_iq_handler(ejabberd_local, ?NS_CPUTIME).
stop(Host) -&gt;
gen_iq_handler:remove_iq_handler(ejabberd_local, Host, ?NS_CPUTIME).
process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) -&gt;
case Type of
@@ -310,28 +368,21 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) -&gt;
[{"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).
</PRE><!--TOC subsection Services-->
<H3 CLASS="subsection"><!--SEC ANCHOR --><A NAME="htoc15">8.2</A>&#XA0;&#XA0;Services</H3><!--SEC END --><P>
<A NAME="services"></A></P><PRE CLASS="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) -&gt;
Host = gen_mod:get_opt(host, Opts, "echo." ++ ?MYNAME),
register(ejabberd_mod_echo, spawn(?MODULE, init, [Host])).
start(Host, Opts) -&gt;
MyHost = gen_mod:get_opt(host, Opts, "echo." ++ Host),
register(gen_mod:get_module_proc(Host, ?PROCNAME),
spawn(?MODULE, init, [MyHost])).
init(Host) -&gt;
ejabberd_router:register_local_route(Host),
@@ -343,22 +394,20 @@ loop(Host) -&gt;
ejabberd_router:route(To, From, Packet),
loop(Host);
stop -&gt;
ejabberd_router:unregister_local_route(Host),
ejabberd_router:unregister_route(Host),
ok;
_ -&gt;
loop(Host)
end.
stop() -&gt;
ejabberd_mod_echo ! stop,
ok.
</PRE>
stop(Host) -&gt;
Proc = gen_mod:get_module_proc(Host, ?PROCNAME),
Proc ! stop,
{wait, Proc}.
</PRE><!--CUT END -->
<!--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>
<HR SIZE=2><BLOCKQUOTE CLASS="quote"><EM>This document was translated from L<sup>A</sup>T<sub>E</sub>X by
</EM><A HREF="http://hevea.inria.fr/index.html"><EM>H</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>V</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>A</EM></A><EM>.</EM></BLOCKQUOTE></BODY>
</HTML>
+212 -120
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,86 @@
\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{\modlastodbc}{\module{mod\_last\_odbc}}
\newcommand{\modmuc}{\module{mod\_muc}}
\newcommand{\modmuclog}{\module{mod\_muc\_log}}
\newcommand{\modoffline}{\module{mod\_offline}}
\newcommand{\modofflineodbc}{\module{mod\_offline\_odbc}}
\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{\modrosterodbc}{\module{mod\_roster\_odbc}}
\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{\modvcardodbc}{\module{mod\_vcard\_odbc}}
\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 +120,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,24 +131,24 @@ 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
packet must be sent 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.
\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 +156,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 +245,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 +262,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 +287,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 +301,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 +319,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 +388,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 +397,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 +422,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 +453,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}
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

+132
View File
@@ -0,0 +1,132 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Ejabberd 2.1.11 Feature Sheet
</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<META name="GENERATOR" content="hevea 1.10">
<STYLE type="text/css">
.li-itemize{margin:1ex 0ex;}
.li-enumerate{margin:1ex 0ex;}
.dd-description{margin:0ex 0ex 1ex 4ex;}
.dt-description{margin:0ex;}
.toc{list-style:none;}
.thefootnotes{text-align:left;margin:0ex;}
.dt-thefootnotes{margin:0em;}
.dd-thefootnotes{margin:0em 0em 0em 2em;}
.footnoterule{margin:1em auto 1em 0px;width:50%;}
.caption{padding-left:2ex; padding-right:2ex; margin-left:auto; margin-right:auto}
.title{margin:2ex auto;text-align:center}
.center{text-align:center;margin-left:auto;margin-right:auto;}
.flushleft{text-align:left;margin-left:0ex;margin-right:auto;}
.flushright{text-align:right;margin-left:auto;margin-right:0ex;}
DIV TABLE{margin-left:inherit;margin-right:inherit;}
PRE{text-align:left;margin-left:0ex;margin-right:auto;}
BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;}
TD P{margin:0px;}
.boxed{border:1px solid black}
.textboxed{border:1px solid black}
.vbar{border:none;width:2px;background-color:black;}
.hbar{border:none;height:2px;width:100%;background-color:black;}
.hfill{border:none;height:1px;width:200%;background-color:black;}
.vdisplay{border-collapse:separate;border-spacing:2px;width:auto; empty-cells:show; border:2px solid red;}
.vdcell{white-space:nowrap;padding:0px;width:auto; border:2px solid green;}
.display{border-collapse:separate;border-spacing:2px;width:auto; border:none;}
.dcell{white-space:nowrap;padding:0px;width:auto; border:none;}
.dcenter{margin:0ex auto;}
.vdcenter{border:solid #FF8000 2px; margin:0ex auto;}
.minipage{text-align:left; margin-left:0em; margin-right:auto;}
.marginpar{border:solid thin black; width:20%; text-align:left;}
.marginparleft{float:left; margin-left:0ex; margin-right:1ex;}
.marginparright{float:right; margin-left:1ex; margin-right:0ex;}
.theorem{text-align:left;margin:1ex auto 1ex 0ex;}
.part{margin:2ex auto;text-align:center}
SPAN{width:20%; float:right; text-align:left; margin-left:auto;}
</STYLE>
</HEAD>
<BODY >
<!--HEVEA command line is: /usr/bin/hevea -fix -pedantic features.tex -->
<!--CUT DEF section 1 --><P><A NAME="titlepage"></A>
</P><TABLE CLASS="title"><TR><TD><H1 CLASS="titlemain">Ejabberd 2.1.11 Feature Sheet</H1><H3 CLASS="titlerest">Sander Devrieze<BR>
<A HREF="mailto:s.devrieze@pandora.be"><TT>mailto:s.devrieze@pandora.be</TT></A><BR>
<A HREF="xmpp:sander@devrieze.dyndns.org"><TT>xmpp:sander@devrieze.dyndns.org</TT></A></H3></TD></TR>
</TABLE><DIV CLASS="center">
<IMG SRC="logo.png" ALT="logo.png">
</DIV><BLOCKQUOTE CLASS="quotation"><FONT COLOR="#921700"><I>I can thoroughly recommend ejabberd for ease of setup &#X2013;
Kevin Smith, Current maintainer of the Psi project</I></FONT></BLOCKQUOTE><P>Introduction
<A NAME="intro"></A></P><BLOCKQUOTE CLASS="quotation"><FONT COLOR="#921700"><I>I just tried out ejabberd and was impressed both by ejabberd itself and the language it is written in, Erlang. &#X2014;
Joeri</I></FONT></BLOCKQUOTE><P><TT>ejabberd</TT> is a <B><FONT SIZE=4><FONT COLOR="#001376">free and open source</FONT></FONT></B> instant messaging server written in <A HREF="http://www.erlang.org/">Erlang/OTP</A>.</P><P><TT>ejabberd</TT> is <B><FONT SIZE=4><FONT COLOR="#001376">cross-platform</FONT></FONT></B>, distributed, fault-tolerant, and based on open standards to achieve real-time communication.</P><P><TT>ejabberd</TT> is designed to be a <B><FONT SIZE=4><FONT COLOR="#001376">rock-solid and feature rich</FONT></FONT></B> XMPP server.</P><P><TT>ejabberd</TT> is suitable for small deployments, whether they need to be <B><FONT SIZE=4><FONT COLOR="#001376">scalable</FONT></FONT></B> or not, as well as extremely big deployments.</P><!--TOC section Key Features-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc1"></A>Key Features</H2><!--SEC END --><P>
<A NAME="keyfeatures"></A>
</P><BLOCKQUOTE CLASS="quotation"><FONT COLOR="#921700"><I>Erlang seems to be tailor-made for writing stable, robust servers. &#X2014;
Peter Saint-Andr&#XE9;, Executive Director of the Jabber Software Foundation</I></FONT></BLOCKQUOTE><P><TT>ejabberd</TT> is:
</P><UL CLASS="itemize"><LI CLASS="li-itemize">
<B><FONT SIZE=4><FONT COLOR="#001376">Cross-platform:</FONT></FONT></B> <TT>ejabberd</TT> runs under Microsoft Windows and Unix derived systems such as Linux, FreeBSD and NetBSD.</LI><LI CLASS="li-itemize"><B><FONT SIZE=4><FONT COLOR="#001376">Distributed:</FONT></FONT></B> You can run <TT>ejabberd</TT> 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.</LI><LI CLASS="li-itemize"><B><FONT SIZE=4><FONT COLOR="#001376">Fault-tolerant:</FONT></FONT></B> You can deploy an <TT>ejabberd</TT> 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 &#X2018;on the fly&#X2019;.</LI><LI CLASS="li-itemize"><B><FONT SIZE=4><FONT COLOR="#001376">Administrator Friendly:</FONT></FONT></B> <TT>ejabberd</TT> 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:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Comprehensive documentation.
</LI><LI CLASS="li-itemize">Straightforward installers for Linux, Mac OS X, and Windows. </LI><LI CLASS="li-itemize">Web Administration.
</LI><LI CLASS="li-itemize">Shared Roster Groups.
</LI><LI CLASS="li-itemize">Command line administration tool. </LI><LI CLASS="li-itemize">Can integrate with existing authentication mechanisms.
</LI><LI CLASS="li-itemize">Capability to send announce messages.
</LI></UL></LI><LI CLASS="li-itemize"><B><FONT SIZE=4><FONT COLOR="#001376">Internationalized:</FONT></FONT></B> <TT>ejabberd</TT> leads in internationalization. Hence it is very well suited in a globalized world. Related features are:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Translated to 25 languages. </LI><LI CLASS="li-itemize">Support for <A HREF="http://www.ietf.org/rfc/rfc3490.txt">IDNA</A>.
</LI></UL></LI><LI CLASS="li-itemize"><B><FONT SIZE=4><FONT COLOR="#001376">Open Standards:</FONT></FONT></B> <TT>ejabberd</TT> is the first Open Source Jabber server claiming to fully comply to the XMPP standard.
<UL CLASS="itemize"><LI CLASS="li-itemize">
Fully XMPP compliant.
</LI><LI CLASS="li-itemize">XML-based protocol.
</LI><LI CLASS="li-itemize"><A HREF="http://www.ejabberd.im/protocols">Many protocols supported</A>.
</LI></UL></LI></UL><!--TOC section Additional Features-->
<H2 CLASS="section"><!--SEC ANCHOR --><A NAME="htoc2"></A>Additional Features</H2><!--SEC END --><P>
<A NAME="addfeatures"></A>
</P><BLOCKQUOTE CLASS="quotation"><FONT COLOR="#921700"><I>ejabberd is making inroads to solving the "buggy incomplete server" problem &#X2014;
Justin Karneges, Founder of the Psi and the Delta projects</I></FONT></BLOCKQUOTE><P>Moreover, <TT>ejabberd</TT> comes with a wide range of other state-of-the-art features:
</P><UL CLASS="itemize"><LI CLASS="li-itemize">
Modular
<UL CLASS="itemize"><LI CLASS="li-itemize">
Load only the modules you want.
</LI><LI CLASS="li-itemize">Extend <TT>ejabberd</TT> with your own custom modules.
</LI></UL>
</LI><LI CLASS="li-itemize">Security
<UL CLASS="itemize"><LI CLASS="li-itemize">
SASL and STARTTLS for c2s and s2s connections.
</LI><LI CLASS="li-itemize">STARTTLS and Dialback s2s connections.
</LI><LI CLASS="li-itemize">Web Admin accessible via HTTPS secure access.
</LI></UL>
</LI><LI CLASS="li-itemize">Databases
<UL CLASS="itemize"><LI CLASS="li-itemize">
Internal database for fast deployment (Mnesia).
</LI><LI CLASS="li-itemize">Native MySQL support.
</LI><LI CLASS="li-itemize">Native PostgreSQL support.
</LI><LI CLASS="li-itemize">ODBC data storage support.
</LI><LI CLASS="li-itemize">Microsoft SQL Server support. </LI></UL>
</LI><LI CLASS="li-itemize">Authentication
<UL CLASS="itemize"><LI CLASS="li-itemize">
Internal Authentication.
</LI><LI CLASS="li-itemize">PAM, LDAP and ODBC. </LI><LI CLASS="li-itemize">External Authentication script.
</LI></UL>
</LI><LI CLASS="li-itemize">Others
<UL CLASS="itemize"><LI CLASS="li-itemize">
Support for virtual hosting.
</LI><LI CLASS="li-itemize">Compressing XML streams with Stream Compression (<A HREF="http://www.xmpp.org/extensions/xep-0138.html">XEP-0138</A>).
</LI><LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.xmpp.org/extensions/xep-0039.html">XEP-0039</A>).
</LI><LI CLASS="li-itemize">IPv6 support both for c2s and s2s connections.
</LI><LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0045.html">Multi-User Chat</A> module with support for clustering and HTML logging. </LI><LI CLASS="li-itemize">Users Directory based on users vCards.
</LI><LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0060.html">Publish-Subscribe</A> component with support for <A HREF="http://www.xmpp.org/extensions/xep-0163.html">Personal Eventing via Pubsub</A>.
</LI><LI CLASS="li-itemize">Support for web clients: <A HREF="http://www.xmpp.org/extensions/xep-0025.html">HTTP Polling</A> and <A HREF="http://www.xmpp.org/extensions/xep-0206.html">HTTP Binding (BOSH)</A> services.
</LI><LI CLASS="li-itemize">IRC transport.
</LI><LI CLASS="li-itemize">Component support: interface with networks such as AIM, ICQ and MSN installing special tranports.
</LI></UL>
</LI></UL><!--CUT END -->
<!--HTMLFOOT-->
<!--ENDHTML-->
<!--FOOTER-->
<HR SIZE=2><BLOCKQUOTE CLASS="quote"><EM>This document was translated from L<sup>A</sup>T<sub>E</sub>X by
</EM><A HREF="http://hevea.inria.fr/index.html"><EM>H</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>V</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>A</EM></A><EM>.</EM></BLOCKQUOTE></BODY>
</HTML>
+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
+4446 -1076
View File
File diff suppressed because it is too large Load Diff
+5748 -789
View File
File diff suppressed because it is too large Load Diff
+146
View File
@@ -0,0 +1,146 @@
# Managing pubsub nodes through HTTP Atompub #
## Configuration ##
These options will be used by the service to know how to build URLs. Using the previous configuration items the service should be accessed through `http://notify.push.bbc.co.uk:5280/pshb/<host>/<node>/`.
Also, in the ejabberd_http handler configuration, add the identified line.
{5280, ejabberd_http, [
http_poll,
web_admin,
{request_handlers, [{["pshb"], pshb_http}]} % this should be added
]}
It will automatically detect the version of mod_pubsub (odbc or mnesia) and call the appropriate module.
## Important notice ##
In the current version of the code, some security checks are not done :
* node creation uses the default `all` access_createnode acl, not checking for the actual configuration.
* most read operations are successfully executed without authentication. HOWEVER listing items can only be done when the node access_model is "open". In all other cases, the service returns 403. A finer grained authentication will be implemented.
## Usage example with cURL ##
### Errors ###
HTTP status codes are used as intended. Additionally, the XMPP error stanza can also be set in the body :
$ curl -i -X POST -u cstar@localhost:encore -d @createnode.xml http://localhost:5280/pshb/localhost
HTTP/1.1 409 Conflict
Content-Type: text/html; charset=utf-8
Content-Length: 95
Content-type: application/xml
<error code='409' type='cancel'><conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error>
or
$ curl -i -X DELETE -u cstar@localhost:encore http://localhost:5280/pshb/localhost/princely_musings
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=utf-8
Content-Length: 101
Content-type: application/xml
<error code='404' type='cancel'><item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error>
### Getting the service document ###
No authentication necessary. All nodes are listed.
$ curl -i http://host:port/pshb/domain/
### Getting items from a node ###
No authentication done, and all nodes are accessible.
$ curl -i http://host:port/pshb/domain/node/
### Posting a new item ###
$ curl -u jid:password -i -X POST -d @entry.atom http://post:port/pshb/domain/node
User ability to post is based on node configuration.
### Editing a new item ###
$ curl -u jid:password -i -X POST -d @entry.atom http://post:port/pshb/domain/node/itemid
User ability to post is based on node configuration.
### Deleting an item ###
$ curl -u jid:password -i -X DELETE http://post:port/pshb/domain/node/itemid
User ability to post is based on node configuration.
### Creating a new node ###
An instant node can be created if server configuration allows:
$ curl -X POST -u cstar@localhost:encore -d "" http://localhost:5280/pshb/localhost
or
$ curl -X POST -u cstar@localhost:encore -d "<pubsub><create node='princely_musings'/></pubsub>" http://localhost:5280/pshb/localhost
configure element (as per XEP-60) can be passed in the pubsub body.
$ cat createnode.xml
<pubsub><create node='princely_musings' type='flat'/>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var='pubsub#title'><value>Princely Musings (Atom)</value></field>
<field var='pubsub#max_payload_size'><value>1028</value></field>
<field var='pubsub#type'><value>Atom</value></field>
</x>
</pubsub>
$ curl -i -X POST -u cstar@localhost:encore -d @createnode.xml http://localhost:5280/pshb/localhost
HTTP/1.1 200 OK
Content-Length: 130
Content-Type: application/xml
<?xml version="1.0" encoding="utf-8"?><pubsub xmlns='http://jabber.org/protocol/pubsub'><create node='princely_musings'/></pubsub>
### Editing a node configuration ###
$ cat editnode.xml
<pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
<configure node='princely_musings'>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var='pubsub#title'><value>Princely Musings (Atom)</value></field>
<field var='pubsub#deliver_notifications'><value>1</value></field>
<field var='pubsub#deliver_payloads'><value>1</value></field>
<field var='pubsub#persist_items'><value>1</value></field>
<field var='pubsub#max_items'><value>10</value></field>
<field var='pubsub#item_expire'><value>604800</value></field>
<field var='pubsub#access_model'><value>roster</value></field>
</x>
</configure>
</pubsub>
$ curl -i -X PUT -u cstar@localhost:encore -d @createnode.xml http://localhost:5280/pshb/localhost/princely_musings
### Deleting a node ###
A node is deleted by:
$ curl -X DELETE -u cstar@localhost:encore http://localhost:5280/pshb/localhost/princely_musings
+133
View File
@@ -0,0 +1,133 @@
\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 25 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 IRC transport.
\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

+99
View File
@@ -0,0 +1,99 @@
#!/usr/bin/env escript
%% -*- erlang -*-
-record(cmd, {name, desc, longdesc, args, result}).
main(_) ->
Dir = filename:absname(filename:join(["..", "src"])),
FileIn = filename:join([Dir, "mod_admin_p1.erl"]),
{ok, Forms1} = epp_dodger:parse_file(FileIn, [no_fail]),
Comments = erl_comment_scan:file(FileIn),
Forms = erl_recomment:recomment_forms(Forms1, Comments),
Tree = erl_syntax:flatten_form_list(Forms),
AuxFile = "mod_admin.tex",
case file:open(AuxFile, [write]) of
{ok, Fd} ->
io:format(Fd, "\\newcommand{\\modadminsection}{\\begin{description}~n", []),
process(Fd, Tree),
io:format(Fd, "\\end{description}}~n", []),
file:close(Fd),
halt(0);
{error, Why} ->
io:format("failed to open file ~s: ~s",
[AuxFile, file:format_error(Why)]),
halt(1)
end.
process(Fd, Tree) ->
case erl_syntax:type(Tree) of
record_expr ->
case erl_syntax_lib:analyze_record_expr(Tree) of
{record_expr, {ejabberd_commands, _}} ->
Fs = erl_syntax:record_expr_fields(Tree),
Cmd = lists:foldl(
fun(F, C) ->
Name = erl_syntax:record_field_name(F),
Value = erl_syntax:record_field_value(F),
case {erl_syntax:concrete(Name),
catch erl_syntax:concrete(Value)} of
{_, {'EXIT', _}} ->
C;
{name, V} ->
C#cmd{name = V};
{desc, V} ->
C#cmd{desc = V};
{longdesc, V} ->
C#cmd{longdesc = V};
{args, V} ->
C#cmd{args = V};
{result, V} ->
C#cmd{result = V};
_ ->
C
end
end, #cmd{}, Fs),
format_command(Fd, Cmd);
_ ->
ok
end;
_ ->
case erl_syntax:subtrees(Tree) of
[] ->
ok;
List ->
lists:foreach(
fun(Group) ->
lists:foreach(
fun(Subtree) ->
process(Fd, Subtree)
end, Group)
end, List)
end
end.
-define(B(S), S).
format_command(Fd, #cmd{name = Cmd,
desc = Desc,
longdesc = _LongDesc,
args = ArgsDef,
result = _ResultDef}) ->
io:format(Fd, "\\titem{~s ~s} ~s~n",
[escape_underscores(atom_to_list(Cmd)),
flatten_arguments(ArgsDef),
escape_underscores(Desc)]).
flatten_arguments(Args) ->
string:join(
lists:map(
fun({Name, _Type}) ->
escape_underscores(io_lib:format("~s", [Name]))
end, Args),
" ").
escape_underscores(S) ->
lists:flatten(
[case C of
$_ -> "\\_";
_ -> C
end || C <- S]).
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
+88
View File
@@ -0,0 +1,88 @@
Release notes
ejabberd 0.9
This document describes the major new features of and changes to
ejabberd 0.9, compared to latest public release ejabber 0.7.5.
For more detailed information, please refer to ejabberd User
Guide.
Virtual Hosting
ejabberd now can host several domain on the same instance.
This option is enabled by using:
{hosts, ["erlang-projects.org", "erlang-fr.org"]}.
instead of the previous host directive.
Note that you are now using a list of hosts. The main one should
be the first listed. See migration section further in this release
note for details.
Shared Roster
Shared roster is a new feature that allow the ejabberd
administrator to add jabber user that will be present in the
roster of every users on the server.
Shared roster are enabled by adding:
{mod_shared_roster, []}
at the end of your module list in your ejabberd.cfg file.
PostgreSQL (ODBC) support
This feature is experimental and not yet properly documented. This
feature is released for testing purpose.
You need to have Erlang/OTP R10 to compile with ODBC on various
flavour of *nix. You should use Erlang/OTP R10B-4, as this task
has became easier with this release. It comes already build in
Erlang/OTP Microsoft Windows binary.
PostgreSQL support is enabled by using the following module in
ejabberd.cfg instead of their standard counterpart:
mod_last_odbc.erl
mod_offline_odbc.erl
mod_roster_odbc.erl
The database schema is located in the src/odbc/pq.sql file.
Look at the src/ejabberd.cfg.example file for more information on
how to configure ejabberd with odbc support. You can get support
on how to configure ejabberd with a relational database.
Migration from ejabberd 0.7.5
Migration is pretty straightforward as Mnesia database schema
conversions is handled automatically. Remember however that you
must backup your ejabberd database before migration.
Here are the following steps to proceed:
1. Stop your instance of ejabberd.
2. In ejabberd.cfg, define the host lists. Change the host
directive to the hosts one:
Before:
{host, "erlang-projects.org"}.
After:
{hosts, ["erlang-projects.org", "erlang-fr.org"]}.
Note that when you restart the server the existing users will be
affected to the first virtual host, so the order is important. You
should keep the previous hostname as the first virtual host.
3. Restart ejabberd.
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.
+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/
+39
View File
@@ -0,0 +1,39 @@
Release Notes
ejabberd 2.1.10
ejabberd 2.1.10 includes a few bugfixes and improvements.
Read more details about the changes in:
http://redir.process-one.net/ejabberd-2.1.10
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
The major changes are:
* Erlang/OTP compatibility
- Support Erlang/OTP R15B regexp and drivers (EJAB-1521)
- Fix modules update in R14B04 and higher
- Fix modules update of stripped beams (EJAB-1520)
* XMPP Core
- Fix presence problem in C2S after first unavailable (EJAB-1466)
- Fix bug on S2S shaper when TLS is used
- Prevent overload of incoming S2S connections
* XEPs
- BOSH: Get rid of useless mnesia transaction (EJAB-1502)
- MUC: Don't reveal invitee resource when room informs invitor
- Privacy: Activate "Blocked Contacts" to current c2s connection (EJAB-1519)
- Privacy: Always allow packets from user's server and bare jid (EJAB-1441)
- Pubsub: Add hooks for node creation/deletion (EJAB-1470)
- Shared Rosters: support groupname@vhost in Displayed Groups (EJAB-506)
- Vcard: Fix error when lowercasing some search results (EJAB-1490)
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+58
View File
@@ -0,0 +1,58 @@
Release Notes
ejabberd 2.1.11
ejabberd 2.1.11 includes a few bugfixes and improvements.
Read more details about the changes in:
http://redir.process-one.net/ejabberd-2.1.11
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
The major changes are:
* HTTP service
- Fix ejabberd_http:get_line
- Don't use binary:match to extract lines from binaries
- Parse and encode https header names like native http parser does
- Parse correctly https request split into multiple packets
- Properly handle HEAD request in mod_http_bind (EJAB-1538)
- New option default_host for handling requests with ambiguous Host (EJAB-1261)
* ODBC
- New ODBC support for mod_announce
- New ODBC support for mod_blocking
- New ODBC support for mod_irc
- New ODBC support for mod_muc
- New ODBC support for mod_shared_roster
- New ODBC support for mod_vcard_xupdate
- Add ODBC exporting function for privacy table
- Work also with some unicode strings in PgSQL (EJAB-1490)
- Replace a single quote with double quotes in an ODBC escape
* SSL
- Make sure that res is initialized in all cases
- Parse correctly https request split into multiple packets (EJAB-1537)
- Added missed tls:recv_data/2
- Don't ignore Length parameter in tls:recv
- Avoid quadratic behavior in reading SSL data
- Dix http_bind webserver TLS fail on Chrome (EJAB-1530)
* Miscelanea
- Assume we have only one CPU when an auto-detection fails (EJAB-1516)
- Auth: Relax digest-uri handling (EJAB-1529)
- Caps: Cache caps timestamp before the IQ-request is done
- IRC: Use of MUC password
- Private: misc errors cases fixes
- Pubsub: return user affiliation for a specified node (EJAB-1294)
- Shared Roster: Foreign items were not pushed (EJAB-1509)
- Shared Roster LDAP: user substitution in ldap_rfilter (EJAB-1555)
- Windows: Fix makefile rules for building DLLs
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.4
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/
+97
View File
@@ -0,0 +1,97 @@
Release Notes
ejabberd 2.1.7
ejabberd 2.1.7 is the eighth 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.7
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
The changes are:
* BOSH and Web
- Clarify error message when BOSH query is sent to non-running module
- Keep the order of stanzas when BOSH sends several (EJAB-1374)
- Show configuration for HTTPS http_bind
- Support as read-only HTTP method not only GET, also HEAD
- The responses to HEAD must have empty Body
* CAPTCHA
- If the port number isn't listener, then specify the protocol (EJAB-1418)
- New CAPTCHA limit
- New CAPTCHA whitelist support
- Only check system at startup if option is enabled
- Provide HTTPS URL in CAPTCHA form when listener has 'tls' option (EJAB-1406)
- Show captcha_limit option in the example config
- Support more captcha_host value formats (EJAB-1418)
- Throw error when captcha fails at server start, not later at runtime
- captcha_host must have the port number to get protocol (EJAB-1418)
* Core ejabberd
- Disable all entity expansions (EJAB-1451)
- Do not accept XML with undefined prefixes (EJAB-680)
- Make jlib:ip_to_list safe to use
- Make sure 'closed' event is correctly processed on every state
- New route_iq/5 accepting Timeout (EJAB-1398)
- Take into consideration internal queue length when sorting processes queues
- Use route instead of send_element to go through standard workflow
* Erlang/OTP compatibility
- Remove Type and Spec, backport list comprehensions, so R12B-5 can compile
- Tweak pg2_backport.erl to work with Erlang older than R13A (EJAB-1349)
* ODBC
- Don't let presence-in privacy rule block a presence subscription (EJAB-255)
- Escape user input in mod_privacy_odbc (EJAB-1442)
- Try to improve support for roster_version in MSSQL (EJAB-1437)
* Pubsub/PEP/Caps
- Apply filtered notification to PEP last items (EJAB-1456)
- Fix empty pubsub payload check
- Owner can delete any items from its own node (EJAB-1445)
- Pubsub node maxitem forced to 0 if non persistent node (EJAB-1434)
- Reorganize the push_item function, and handle version not_found (EJAB-1420)
* Scripts
- ejabberd.init: Several fixes and improvements
- ejabberdctl: Escape output from ctlexec() to erl script (EJAB-1399)
- ejabberdctl: Fix bashism and mimic master branch (EJAB-1404)
- ejabberdctl: Fix space between INET_DIST_INTERFACE (EJAB-1416)
- ejabberdctl: New DIST_USE_INTERFACE restricts IP of erlang listen (EJAB-1404)
- ejabberdctl: New ERL_EPMD_ADDRESS that works since Erlang/OTP R14B03
- extauth: Fix delayed response of timeout was reused for next login (EJAB-1385)
- extauth: Forward old messages to newly spawned extauth process (EJAB-1385)
- extauth: If script crashes, ejabberd should restart it (EJAB-1428)
* XEP support
- mod_blocking: New XEP-0191 Simple Communications Blocking (EJAB-695)
- No need to inform that XEP-0237 is optional; clarified in XEP version 1.2
* Miscellanea:
- If a module start fails during server start, stop erlang (EJAB-1446)
- New Indonesian translation (EJAB-1407)
- LDAP: Note that ejabberd works with CGP LDAP server
- S2S: Handle Tigase's unexpected version=1.0 (EJAB-1379)
- mod_irc: Send presence unavailable to the departing occupant (EJAB-1417)
- mod_last: Allow user to query his own Last activity
- mod_muc: Do not decrease MUC admin's role/affiliation
- mod_muc: Send jid attribute when occupant is banned (EJAB-1432)
- mod_offline: Change c2s state before offline messages resending
- mod_ping: Use iqdisc no_queue by default (EJAB-1435)
- mod_pres_counter: Prevent subscription flood (EJAB-1388)
- mod_register Access now also controls account unregistrations
- mod_register: Clarify more the expected content of welcome_message option
- mod_shared_roster: Fix support for anonymous accounts in @all@ (EJAB-1264)
- mod_shared_roster: New @online@ directive (EJAB-1391)
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+21
View File
@@ -0,0 +1,21 @@
Release Notes
ejabberd 2.1.8
ejabberd 2.1.8 is the ninth release in ejabberd 2.1.x branch,
and includes a PubSub regression bugfix.
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
The change is:
- Fix issue on PubSub preventing publication of items (EJAB-1457)
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+56
View File
@@ -0,0 +1,56 @@
Release Notes
ejabberd 2.1.9
ejabberd 2.1.9 is the eighth 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.9
Download the source code and installers from:
http://www.process-one.net/en/ejabberd/
The changes are:
* Core ejabberd
- Decrease CPU usage caused by tls:send with large data
- Escape iolist correctly when NIFs are disabled (EJAB-1462)
- Fix code to satisfy Dialyzer warnings
- Fix compilation in Windows
- Replace calls of OTP's Binary, since they would require R14
* LDAP
- Document ldap_tls_cacertfile and ldap_tls_depth options (EJAB-1299)
- Log an error when an LDAP filter is incorrect (EJAB-1395)
- New options: ldap_tls_cacertfile and ldap_tls_depth (EJAB-1299)
- New option: ldap_deref_aliases (EJAB-639)
- Match ldap_uidattr_format case-insensitively (EJAB-1449)
* MUC
- Support for multiple entry with same nick to MUC rooms (EJAB-305)
- Support voice request and approvement
- New room option: allow_private_messages_from_visitors
- New room options: allow_voice_requests and voice_request_min_interval
- Include status 110 in presence to new occupant (EJAB-740)
- Fix mod_muc_log crash when first log entry is room destroy (EJAB-1499)
- Many fixes and improvements in mod_muc
* Pubsub
- Enable pubsub#deliver_notification checking (EJAB-1453)
- Fix Denial of Service when user sends malformed publish stanza (EJAB-1498)
* ODBC
- Fix ODBC account counting (EJAB-1491)
- Optimized mod_roster_odbc:get_roster
* Miscellanea:
- New SASL SCRAM-SHA-1 authentication mechanism (EJAB-1196)
- New option: resource_conflict (EJAB-650)
Bug reports
You can officially report bugs on ProcessOne support site:
http://support.process-one.net/
+2
View File
@@ -0,0 +1,2 @@
% ejabberd version (automatically generated).
\newcommand{\version}{3.0.0}
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

+66
View File
@@ -0,0 +1,66 @@
#!/usr/bin/perl
use Unix::Syslog qw(:macros :subs);
my $domain = $ARGV[0] || "example.com";
while(1)
{
# my $rin = '',$rout;
# vec($rin,fileno(STDIN),1) = 1;
# $ein = $rin;
# my $nfound = select($rout=$rin,undef,undef,undef);
my $buf = "";
syslog LOG_INFO,"waiting for packet";
my $nread = sysread STDIN,$buf,2;
do { syslog LOG_INFO,"port closed"; exit; } unless $nread == 2;
my $len = unpack "n",$buf;
my $nread = sysread STDIN,$buf,$len;
my ($op,$user,$host,$password) = split /:/,$buf;
#$user =~ s/\./\//og;
my $jid = "$user\@$domain";
my $result;
syslog(LOG_INFO,"request (%s)", $op);
SWITCH:
{
$op eq 'auth' and do
{
$result = 1;
},last SWITCH;
$op eq 'setpass' and do
{
$result = 1;
},last SWITCH;
$op eq 'isuser' and do
{
# password is null. Return 1 if the user $user\@$domain exitst.
$result = 1;
},last SWITCH;
$op eq 'tryregister' and do
{
$result = 1;
},last SWITCH;
$op eq 'removeuser' and do
{
# password is null. Return 1 if the user $user\@$domain exitst.
$result = 1;
},last SWITCH;
$op eq 'removeuser3' and do
{
$result = 1;
},last SWITCH;
};
my $out = pack "nn",2,$result ? 1 : 0;
syswrite STDOUT,$out;
}
closelog;
@@ -0,0 +1,77 @@
<!-- 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
@@ -0,0 +1,136 @@
<!-- 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>
@@ -0,0 +1,149 @@
<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
@@ -0,0 +1,128 @@
<!-- 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>
@@ -0,0 +1,118 @@
<!-- 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>
@@ -0,0 +1,86 @@
<!-- 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>
+45
View File
@@ -0,0 +1,45 @@
#!/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
+43
View File
@@ -0,0 +1,43 @@
#!/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
@@ -0,0 +1,47 @@
#!/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
+45
View File
@@ -0,0 +1,45 @@
#!/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
+50
View File
@@ -0,0 +1,50 @@
#!/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
+45
View File
@@ -0,0 +1,45 @@
#!/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
+267 -23
View File
@@ -6,30 +6,156 @@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
EXPAT_CFLAGS = @EXPAT_CFLAGS@
ERLANG_CFLAGS= @ERLANG_CFLAGS@
EXPAT_LIBS = @EXPAT_LIBS@
ERLANG_LIBS = @ERLANG_LIBS@
ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize +noobj
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 .
ERLANG_CFLAGS += @ERLANG_SSLVER@
# make debug=true to compile Erlang module with debug informations.
ifdef debug
EFLAGS+=+debug_info
endif
DEBUGTOOLS = p1_prof.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 (@nif@, true)
EFLAGS+=-DNIF
ERLSHLIBS=xml.so
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
ifeq (@flash_hack@, true)
ERLC_FLAGS+=-DENABLE_FLASH_HACK
CPPFLAGS+=-DENABLE_FLASH_HACK
endif
prefix = @prefix@
exec_prefix = @exec_prefix@
INCLUDES = @ERLANG_CFLAGS@ @EXPAT_CFLAGS@
LIBDIRS = @ERLANG_LIBS@ @EXPAT_LIBS@
SUBDIRS = @mod_irc@ @mod_pubsub@ @mod_muc@ @eldap@ @web@ stringprep
ERLSHLIBS = expat_erl.so
SUBDIRS = @mod_irc@ @mod_pubsub@ @mod_muc@ @mod_proxy65@ @eldap@ @pam@ @web@ stringprep stun @tls@ @odbc@ @ejabberd_zlib@
ERLSHLIBS += expat_erl.so
ERLBEHAVS = cyrsasl.erl gen_mod.erl p1_fsm.erl ejabberd_auth.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 \
@@ -42,38 +168,156 @@ mostlyclean-recursive maintainer-clean-recursive:
done
%.hrl: %.asn1
@ERLC@ $(ASN_FLAGS) $<
@ERLC@ -W $(EFLAGS) $*.erl
$(ERLSHLIBS): %.so: %.c
gcc -Wall $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(LIBDIRS) \
$(subst ../,,$(subst .so,.c,$@)) \
-lexpat \
-lerl_interface \
-lei \
-o $@ -fpic -shared \
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS) \
$(subst ../,,$(subst .so,.c,$@)) \
$(EXPAT_LIBS) \
$(EXPAT_CFLAGS) \
$(ERLANG_LIBS) \
$(ERLANG_CFLAGS) \
-o $@ \
$(DYNAMIC_LIB_CFLAGS)
translations:
../contrib/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
chmod 755 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)/mod_pubsub_ng/
install -m 644 mod_pubsub_ng/*.hrl $(INCLUDEDIR)/mod_pubsub_ng/
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)
install -m 644 ../doc/dev.html $(DOCDIR)
install -m 644 ../doc/guide.html $(DOCDIR)
install -m 644 ../doc/*.png $(DOCDIR)
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)
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-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
rm -f config.log
rm -f Makefile
[ ! -f ../ChangeLog ] || rm -f ../ChangeLog
TAGS:
etags *.erl
Makefile: Makefile.in
dialyzer: $(BEAMS)
@dialyzer -c .
+54 -17
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,18 +35,15 @@ 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)
mkdir $(WIN32_DIR)\5.3
copy win32\5.3\*.beam $(WIN32_DIR)\5.3
mkdir $(SRC_DIR)
copy *.app $(SRC_DIR)
copy *.erl $(SRC_DIR)
@@ -62,16 +59,31 @@ release : build release_clean
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_pubsub_ng
copy mod_pubsub_ng\*.erl $(SRC_DIR)\mod_pubsub_ng
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)\win32
mkdir $(SRC_DIR)\win32\5.3
copy win32\5.3\*.erl $(SRC_DIR)\win32\5.3
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)
@@ -90,17 +102,30 @@ all-recursive :
nmake -nologo -f Makefile.win32
cd ..\mod_pubsub
nmake -nologo -f Makefile.win32
cd ..\mod_pubsub_ng
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 ..\win32\5.3
cd ..\odbc
nmake -nologo -f Makefile.win32
cd ..\..
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 :
@@ -109,6 +134,9 @@ clean-local :
-@erase expat_erl.exp
-@erase expat_erl.lib
-@erase *.beam
-@erase XmppAddr.asn1db
-@erase XmppAddr.erl
-@erase XmppAddr.hrl
clean-recursive :
cd eldap
@@ -119,13 +147,23 @@ clean-recursive :
nmake -nologo -f Makefile.win32 clean
cd ..\mod_pubsub
nmake -nologo -f Makefile.win32 clean
cd ..\mod_pubsub_ng
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 ..\win32\5.3
cd ..\odbc
nmake -nologo -f Makefile.win32 clean
cd ..\..
cd ..
distclean : release_clean clean
-@erase $(NSIS_HEADER)
@@ -138,8 +176,7 @@ 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
$(DLL) : $(OBJECT)
$(LD) $(LD_FLAGS) -out:$(DLL) $(OBJECT)
$(LD) $(LD_FLAGS) -out:$@ $<
$(OBJECT) : $(SOURCE)
$(CC) $(CC_FLAGS) -c -Fo$(OBJECT) $(SOURCE)
$(CC) $(CC_FLAGS) -c -Fo$@ $<
+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
+350
View File
@@ -0,0 +1,350 @@
AC_DEFUN([AM_WITH_EXPAT],
[ AC_ARG_WITH(expat,
[AC_HELP_STRING([--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 development files of Expat library])
fi
expat_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $EXPAT_CFLAGS"
expat_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $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"
CPPFLAGS="$expat_save_CPPFLAGS"
AC_SUBST(EXPAT_CFLAGS)
AC_SUBST(EXPAT_LIBS)
])
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",
RootDirS = code:root_dir() ++ "\n",
file:write_file("conftest.out", list_to_binary(EIDirS ++ EILibS ++ ssldef() ++ 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`
# 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(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 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],
[AC_HELP_STRING([--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,
[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/>
+243 -105
View File
@@ -1,150 +1,288 @@
%%%----------------------------------------------------------------------
%%% 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-2013 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$ ').
-export([start/0,
to_record/2,
add/2,
add_list/2,
match_rule/2,
% for debugging only
match_acl/2]).
-author('alexey@process-one.net').
-export([start/0, to_record/3, add/3, add_list/3,
match_rule/3, match_acl/3]).
-include("ejabberd.hrl").
-include("jlib.hrl").
-record(acl, {aclname, aclspec}).
-type regexp() :: binary().
-type glob() :: binary().
-type aclname() :: {atom(), binary() | global}.
-type aclspec() :: all | none |
{user, binary()} |
{user, binary(), binary()} |
{server, binary()} |
{resource, binary()} |
{user_regexp, regexp()} |
{shared_group, binary()} |
{shared_group, binary(), binary()} |
{user_regexp, regexp(), binary()} |
{server_regexp, regexp()} |
{resource_regexp, regexp()} |
{node_regexp, regexp(), regexp()} |
{user_glob, glob()} |
{user_glob, glob(), binary()} |
{server_glob, glob()} |
{resource_glob, glob()} |
{node_glob, glob(), glob()}.
-type acl() :: #acl{aclname :: aclname(),
aclspec :: aclspec()}.
-export_type([acl/0]).
start() ->
mnesia:create_table(acl,
[{disc_copies, [node()]},
{type, bag},
[{disc_copies, [node()]}, {type, bag},
{attributes, record_info(fields, acl)}]),
mnesia:add_table_copy(acl, node(), ram_copies),
update_table(),
ok.
to_record(ACLName, ACLSpec) ->
#acl{aclname = ACLName, aclspec = ACLSpec}.
-spec to_record(binary(), atom(), aclspec()) -> acl().
add(ACLName, ACLSpec) ->
F = fun() ->
mnesia:write(#acl{aclname = ACLName, aclspec = ACLSpec})
to_record(Host, ACLName, ACLSpec) ->
#acl{aclname = {ACLName, Host},
aclspec = normalize_spec(ACLSpec)}.
-spec add(binary(), aclname(), aclspec()) -> {atomic, ok} | {aborted, any()}.
add(Host, ACLName, ACLSpec) ->
F = fun () ->
mnesia:write(#acl{aclname = {ACLName, Host},
aclspec = normalize_spec(ACLSpec)})
end,
mnesia:transaction(F).
add_list(ACLs, Clear) ->
F = fun() ->
if
Clear ->
Ks = mnesia:all_keys(acl),
lists:foreach(fun(K) ->
mnesia:delete({acl, K})
end, Ks);
true ->
ok
-spec add_list(binary(), [acl()], boolean()) -> false | ok.
add_list(Host, ACLs, Clear) ->
F = fun () ->
if Clear ->
Ks = mnesia:select(acl,
[{{acl, {'$1', Host}, '$2'}, [],
['$1']}]),
lists:foreach(fun (K) -> mnesia:delete({acl, {K, Host}})
end,
Ks);
true -> ok
end,
lists:foreach(fun(ACL) ->
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,
ACLs)
end,
case mnesia:transaction(F) of
{atomic, _} ->
ok;
_ ->
false
{atomic, _} -> ok;
_ -> false
end.
normalize(A) -> jlib:nodeprep(iolist_to_binary(A)).
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 match_rule(global | binary(), atom(), jid() | ljid()) -> any().
match_rule(global, Rule, JID) ->
case Rule of
all -> allow;
none -> deny;
_ ->
case ejabberd_config:get_global_option({access, Rule}) of
undefined ->
deny;
ACLs ->
match_acls(ACLs, JID)
end
all -> allow;
none -> deny;
_ ->
case ejabberd_config:get_global_option(
{access, Rule, global}, fun(V) -> V end)
of
undefined -> deny;
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}, fun(V) -> V end)
of
undefined ->
case ejabberd_config:get_global_option(
{access, Rule, Host}, fun(V) -> V end)
of
undefined -> deny;
ACLs -> match_acls(ACLs, JID, Host)
end;
GACLs ->
case ejabberd_config:get_global_option(
{access, Rule, Host}, fun(V) -> V end)
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([], _) ->
deny;
match_acls([{Access, ACL} | ACLs], JID) ->
case match_acl(ACL, JID) of
true ->
Access;
_ ->
match_acls(ACLs, JID)
match_acls([], _, _Host) -> deny;
match_acls([{Access, ACL} | ACLs], JID, Host) ->
case match_acl(ACL, JID, Host) of
true -> Access;
_ -> match_acls(ACLs, JID, Host)
end.
match_acl(ACL, JID) ->
-spec match_acl(atom(), jid() | ljid(), binary()) -> boolean().
match_acl(ACL, JID, Host) ->
case ACL of
all -> true;
none -> false;
_ ->
{User, Server, Resource} = jlib:jid_tolower(JID),
lists:any(fun(#acl{aclspec = Spec}) ->
case Spec of
all ->
true;
{user, U} ->
(U == User) andalso (?MYNAME == Server);
{user, U, S} ->
(U == User) andalso (S == Server);
{server, S} ->
S == Server;
{user_regexp, UR} ->
(?MYNAME == Server) andalso
is_regexp_match(User, UR);
{user_regexp, UR, S} ->
(S == Server) andalso
is_regexp_match(User, UR);
{server_regexp, SR} ->
is_regexp_match(Server, SR);
{node_regexp, UR, SR} ->
is_regexp_match(Server, SR) andalso
is_regexp_match(User, UR);
{user_glob, UR} ->
(?MYNAME == 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);
{node_glob, UR, SR} ->
is_glob_match(Server, SR) andalso
is_glob_match(User, UR)
end
end, ets:lookup(acl, ACL))
all -> true;
none -> false;
_ ->
{User, Server, Resource} = jlib:jid_tolower(JID),
lists:any(fun (#acl{aclspec = Spec}) ->
case Spec of
all -> true;
{user, U} ->
U == User andalso
(Host == Server orelse
Host == global andalso
lists:member(Server, ?MYHOSTS));
{user, U, S} -> U == User andalso S == Server;
{server, S} -> S == Server;
{resource, R} -> R == Resource;
{user_regexp, UR} ->
(Host == Server orelse
Host == global andalso
lists:member(Server, ?MYHOSTS))
andalso is_regexp_match(User, UR);
{shared_group, G} ->
Mod = loaded_shared_roster_module(Host),
Mod:is_user_in_group({User, Server}, G, Host);
{shared_group, G, H} ->
Mod = loaded_shared_roster_module(H),
Mod: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} ->
(Host == Server orelse
Host == global andalso
lists:member(Server, ?MYHOSTS))
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);
WrongSpec ->
?ERROR_MSG("Wrong ACL expression: ~p~nCheck your "
"config file and reload it with the override_a"
"cls option enabled",
[WrongSpec]),
false
end
end,
ets:lookup(acl, {ACL, global}) ++
ets:lookup(acl, {ACL, Host}))
end.
is_regexp_match(String, RegExp) ->
case regexp:first_match(String, RegExp) of
nomatch ->
false;
{match, _, _} ->
true;
{error, ErrDesc} ->
?ERROR_MSG(
"Wrong regexp ~p in ACL: ~p",
[RegExp, lists:flatten(regexp:format_error(ErrDesc))]),
false
case ejabberd_regexp:run(String, RegExp) of
nomatch -> false;
match -> true;
{error, ErrDesc} ->
?ERROR_MSG("Wrong regexp ~p in ACL: ~p",
[RegExp, ErrDesc]),
false
end.
is_glob_match(String, Glob) ->
is_regexp_match(String, regexp:sh_to_awk(Glob)).
is_regexp_match(String,
ejabberd_regexp:sh_to_awk(Glob)).
loaded_shared_roster_module(Host) ->
case gen_mod:is_loaded(Host, mod_shared_roster_ldap) of
true -> mod_shared_roster_ldap;
false -> mod_shared_roster
end.
update_table() ->
Fields = record_info(fields, acl),
case mnesia:table_info(acl, attributes) of
Fields ->
ejabberd_config:convert_table_to_binary(
acl, Fields, bag,
fun(#acl{aclspec = Spec}) when is_tuple(Spec) ->
element(2, Spec);
(_) ->
'$next'
end,
fun(#acl{aclname = {ACLName, Host},
aclspec = Spec} = R) ->
NewHost = if Host == global ->
Host;
true ->
iolist_to_binary(Host)
end,
R#acl{aclname = {ACLName, NewHost},
aclspec = normalize_spec(Spec)}
end);
_ ->
?INFO_MSG("Recreating acl table", []),
mnesia:transform_table(acl, ignore, Fields)
end.
-195
View File
@@ -1,195 +0,0 @@
AC_DEFUN(AM_WITH_EXPAT,
[ AC_ARG_WITH(expat,
[ --with-expat=PREFIX path to expat library],
, with_expat=no)
EXPAT_CFLAGS=
EXPAT_LIBS=
if test $with_expat != no; then
if test $with_expat != yes; 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"
fi
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"
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=DIR Search for libiconv in DIR/include and DIR/lib], [
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)
])
+152
View File
@@ -0,0 +1,152 @@
%%%----------------------------------------------------------------------
%%% 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-2013 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("ejabberd.hrl").
-include("jlib.hrl").
-include("adhoc.hrl").
%%
-spec(parse_request/1 ::
(
IQ :: iq_request())
-> adhoc_response()
%%
| {error, _}
).
parse_request(#iq{type = set, lang = Lang, sub_el = SubEl, xmlns = ?NS_COMMANDS}) ->
?DEBUG("entering parse_request...", []),
Node = xml:get_tag_attr_s(<<"node">>, SubEl),
SessionID = xml:get_tag_attr_s(<<"sessionid">>, SubEl),
Action = xml:get_tag_attr_s(<<"action">>, SubEl),
XData = find_xdata_el(SubEl),
#xmlel{children = AllEls} = 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
};
parse_request(_) -> {error, ?ERR_BAD_REQUEST}.
find_xdata_el(#xmlel{children = SubEls}) ->
find_xdata_el1(SubEls).
find_xdata_el1([]) -> false;
find_xdata_el1([El | Els]) when is_record(El, xmlel) ->
case xml:get_tag_attr_s(<<"xmlns">>, El) of
?NS_XDATA -> El;
_ -> find_xdata_el1(Els)
end;
find_xdata_el1([_ | Els]) -> find_xdata_el1(Els).
%%
-spec(produce_response/2 ::
(
Adhoc_Request :: adhoc_request(),
Adhoc_Response :: adhoc_response())
-> Xmlel::xmlel()
).
produce_response(#adhoc_request{lang = Lang, node = Node, sessionid = SessionID},
Adhoc_Response) ->
produce_response(Adhoc_Response#adhoc_response{
lang = Lang, node = Node, sessionid = SessionID
}).
%%
-spec(produce_response/1 ::
(
Adhoc_Response::adhoc_response())
-> Xmlel::xmlel()
).
produce_response(
#adhoc_response{
%lang = _Lang,
node = Node,
sessionid = ProvidedSessionID,
status = Status,
defaultaction = DefaultAction,
actions = Actions,
notes = Notes,
elements = Elements
}) ->
SessionID = if is_binary(ProvidedSessionID),
ProvidedSessionID /= <<"">> -> ProvidedSessionID;
true -> jlib:now_to_utc_string(now())
end,
case Actions of
[] ->
ActionsEls = [];
_ ->
case DefaultAction of
<<"">> -> ActionsElAttrs = [];
_ -> ActionsElAttrs = [{<<"execute">>, DefaultAction}]
end,
ActionsEls = [
#xmlel{
name = <<"actions">>,
attrs = ActionsElAttrs,
children = [
#xmlel{name = Action, attrs = [], children = []}
|| Action <- Actions]
}
]
end,
NotesEls = lists:map(fun({Type, Text}) ->
#xmlel{
name = <<"note">>,
attrs = [{<<"type">>, Type}],
children = [{xmlcdata, Text}]
}
end, Notes),
#xmlel{
name = <<"command">>,
attrs = [
{<<"xmlns">>, ?NS_COMMANDS},
{<<"sessionid">>, SessionID},
{<<"node">>, Node},
{<<"status">>, iolist_to_binary(atom_to_list(Status))}
],
children = ActionsEls ++ NotesEls ++ Elements
}.
+45
View File
@@ -0,0 +1,45 @@
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2013 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 = <<"">> :: binary(),
node = <<"">> :: binary(),
sessionid = <<"">> :: binary(),
action = <<"">> :: binary(),
xdata = false :: false | xmlel(),
others = [] :: [xmlel()]
}).
-record(adhoc_response,
{
lang = <<"">> :: binary(),
node = <<"">> :: binary(),
sessionid = <<"">> :: binary(),
status :: atom(),
defaultaction = <<"">> :: binary(),
actions = [] :: [binary()],
notes = [] :: [{binary(), binary()}],
elements = [] :: [xmlel()]
}).
-type adhoc_request() :: #adhoc_request{}.
-type adhoc_response() :: #adhoc_response{}.
+56
View File
@@ -0,0 +1,56 @@
%% Copyright (C) 2009 Romuald du Song <rdusong _AT_ gmail _DOT_ com>.
%% All rights reserved.
%%
%% Redistribution and use in source and binary forms, with or without
%% modification, are permitted provided that the following conditions
%% are met:
%%
%% 1. Redistributions of source code must retain the above copyright
%% notice, this list of conditions and the following disclaimer.
%% 2. Redistributions in binary form must reproduce the above
%% copyright notice, this list of conditions and the following
%% disclaimer in the documentation and/or other materials provided
%% with the distribution.
%%
%% THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
%% OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
%% WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
%% ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
%% DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
%% DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
%% GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
%% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
%% WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
%% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
%% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-module(beam_util).
-export([module_export_list/1, filter_arity/3]).
%% Module = string()
%% Function = atom()
module_export_list( Module ) ->
{_Module, _Binary, Filename} = code:get_object_code(Module),
case beam_lib:info( Filename ) of
{error, beam_lib, _} ->
false;
[ _ , _ , _ ] ->
case beam_lib:chunks( Filename, [exports]) of
{ok, {_, [{exports, Exports}]}} ->
Exports;
{error, beam_lib, Er} ->
false
end
end.
%% Module = string()
%% Arity = integer()
%% Exports = list()
filter_arity( Function, Arity, Exports) ->
case lists:filter(
fun( EFName ) -> {Function, Arity} == EFName end,
Exports ) of
[{_, _}] -> true;
[] -> false
end.
+609
View File
@@ -0,0 +1,609 @@
%%%-------------------------------------------------------------------
%%% 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-2013 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() ->
case catch erlang:system_info(logical_processors) of
Num when is_integer(Num) ->
Num;
_ ->
1
end.
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-2013 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
+4928 -3127
View File
File diff suppressed because it is too large Load Diff
+157 -8
View File
@@ -2,12 +2,16 @@
# 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
@@ -15,29 +19,174 @@ 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(mod_pubsub_ng, yes)
AC_MOD_ENABLE(eldap, 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(flash_hack,
[AC_HELP_STRING([--enable-flash-hack], [support Adobe Flash client XML (default: no)])],
[case "${enableval}" in
yes) flash_hack=true ;;
no) flash_hack=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-flash-hack) ;;
esac],[flash_hack=false])
AC_SUBST(flash_hack)
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_ARG_ENABLE(nif,
[AC_HELP_STRING([--enable-nif], [replace some functions with C equivalents. Requires Erlang R13B04 or higher (default: no)])],
[case "${enableval}" in
yes) nif=true ;;
no) nif=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-nif) ;;
esac],[nif=false])
AC_SUBST(nif)
AC_CONFIG_FILES([Makefile
$make_mod_irc
$make_mod_muc
$make_mod_pubsub
$make_mod_pubsub_ng
$make_mod_proxy65
$make_eldap
$make_pam
$make_web
stringprep/Makefile])
stringprep/Makefile
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
+48 -19
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-2013 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]).
@@ -27,34 +44,46 @@ start() ->
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";
IconvDir = "ICONV_DIR = c:\\sdk\\GnuWin32\n",
IconvLib = "ICONV_LIB = $(ICONV_DIR)\\lib\\libiconv.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"
IconvDir = "ICONV_DIR = c:\\sdk\\GnuWin32\n",
IconvLib = "ICONV_LIB = $(ICONV_DIR)\\lib\\libiconv.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",
Version = "EJABBERD_VERSION = " ++ ?VERSION ++ "\n",
ExpatDir = "EXPAT_DIR = c:\\progra~1\\expat-1.95.7\n",
%% Load the ejabberd application description so that ?VERSION can read the vsn key
application:load(ejabberd),
Version = "EJABBERD_VERSION = " ++ binary_to_list(?VERSION) ++ "\n",
ExpatDir = "EXPAT_DIR = c:\\sdk\\Expat-2.0.0\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 ++
DBType ++
ExpatDir ++
ExpatLib ++
ExpatFlag ++
IconvDir ++
IconvLib)),
IconvLib ++
ZlibDir ++
ZlibLib)),
halt().
+182 -83
View File
@@ -1,116 +1,215 @@
%%%----------------------------------------------------------------------
%%% 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-2013 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$ ').
-export([start/0,
register_mechanism/2,
listmech/0,
server_new/4,
server_start/3,
server_step/2]).
-author('alexey@process-one.net').
-record(sasl_mechanism, {mechanism, module}).
-record(sasl_state, {service, myname, realm, mech_mod, mech_state}).
-export([start/0, register_mechanism/3, listmech/1,
server_new/7, server_start/3, server_step/2]).
-export([behaviour_info/1]).
-include("ejabberd.hrl").
behaviour_info(callbacks) ->
[{mech_new, 0},
{mech_step, 2}];
behaviour_info(Other) ->
undefined.
%%
-export_type([
mechanism/0,
mechanisms/0,
sasl_mechanism/0
]).
-record(sasl_mechanism,
{mechanism = <<"">> :: mechanism() | '$1',
module :: atom(),
password_type = plain :: password_type() | '$2'}).
-type(mechanism() :: binary()).
-type(mechanisms() :: [mechanism(),...]).
-type(password_type() :: plain | digest | scram).
-type(props() :: [{username, binary()} |
{authzid, binary()} |
{auth_module, atom()}]).
-type(sasl_mechanism() :: #sasl_mechanism{}).
-record(sasl_state,
{
service,
myname,
realm,
get_password,
check_password,
check_password_digest,
mech_mod,
mech_state
}).
-callback mech_new(binary(), fun(), fun(), fun()) -> any().
-callback mech_step(any(), binary()) -> {ok, props()} |
{ok, props(), binary()} |
{continue, binary(), any()} |
{error, binary()} |
{error, binary(), binary()}.
start() ->
ets:new(sasl_mechanism, [named_table,
public,
{keypos, #sasl_mechanism.mechanism}]),
ets:new(sasl_mechanism,
[named_table, public,
{keypos, #sasl_mechanism.mechanism}]),
cyrsasl_plain:start([]),
cyrsasl_digest:start([]),
cyrsasl_scram:start([]),
cyrsasl_anonymous:start([]),
ok.
register_mechanism(Mechanism, Module) ->
ets:insert(sasl_mechanism, #sasl_mechanism{mechanism = Mechanism,
module = Module}).
%%
-spec(register_mechanism/3 ::
(
Mechanim :: mechanism(),
Module :: module(),
PasswordType :: password_type())
-> any()
).
% 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
end
end.
register_mechanism(Mechanism, Module, PasswordType) ->
ets:insert(sasl_mechanism,
#sasl_mechanism{mechanism = Mechanism, module = Module,
password_type = PasswordType}).
check_credentials(State, Props) ->
User = xml:get_attr_s(username, Props),
%%% 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
%% end
%% end.
check_credentials(_State, Props) ->
User = proplists:get_value(username, Props, <<>>),
case jlib:nodeprep(User) of
error ->
{error, "not-authorized"};
"" ->
{error, "not-authorized"};
LUser ->
ok
error -> {error, <<"not-authorized">>};
<<"">> -> {error, <<"not-authorized">>};
_LUser -> ok
end.
listmech() ->
ets:select(sasl_mechanism,
[{#sasl_mechanism{mechanism = '$1', _ = '_'}, [], ['$1']}]).
-spec(listmech/1 ::
(
Host ::binary())
-> Mechanisms::mechanisms()
).
listmech(Host) ->
Mechs = ets:select(sasl_mechanism,
[{#sasl_mechanism{mechanism = '$1',
password_type = '$2', _ = '_'},
case catch ejabberd_auth:store_type(Host) of
external -> [{'==', '$2', plain}];
scram -> [{'/=', '$2', digest}];
{'EXIT', {undef, [{Module, store_type, []} | _]}} ->
?WARNING_MSG("~p doesn't implement the function store_type/0",
[Module]),
[];
_Else -> []
end,
['$1']}]),
filter_anonymous(Host, Mechs).
server_new(Service, ServerFQDN, UserRealm, SecFlags) ->
#sasl_state{service = Service,
myname = ServerFQDN,
realm = UserRealm}.
server_new(Service, ServerFQDN, UserRealm, _SecFlags,
GetPassword, CheckPassword, CheckPasswordDigest) ->
#sasl_state{service = Service, myname = ServerFQDN,
realm = UserRealm, get_password = GetPassword,
check_password = CheckPassword,
check_password_digest = CheckPasswordDigest}.
server_start(State, Mech, ClientIn) ->
case ets:lookup(sasl_mechanism, Mech) of
[#sasl_mechanism{module = Module}] ->
{ok, MechState} = Module:mech_new(),
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.myname,
State#sasl_state.get_password,
State#sasl_state.check_password,
State#sasl_state.check_password_digest),
server_step(State#sasl_state{mech_mod = Module,
mech_state = MechState},
ClientIn);
_ -> {error, <<"no-mechanism">>}
end;
false -> {error, <<"no-mechanism">>}
end.
server_step(State, ClientIn) ->
Module = State#sasl_state.mech_mod,
MechState = State#sasl_state.mech_state,
case Module:mech_step(MechState, ClientIn) of
{ok, Props} ->
case check_credentials(State, Props) of
ok ->
{ok, Props};
{error, Error} ->
{error, Error}
end;
{continue, ServerOut, NewMechState} ->
{continue, ServerOut,
State#sasl_state{mech_state = NewMechState}};
{error, Error} ->
{error, Error}
{ok, Props} ->
case check_credentials(State, Props) of
ok -> {ok, Props};
{error, Error} -> {error, Error}
end;
{ok, Props, ServerOut} ->
case check_credentials(State, Props) of
ok -> {ok, Props, ServerOut};
{error, Error} -> {error, Error}
end;
{continue, ServerOut, NewMechState} ->
{continue, ServerOut, State#sasl_state{mech_state = NewMechState}};
{error, Error, Username} ->
{error, Error, Username};
{error, Error} ->
{error, Error}
end.
%%
-spec(filter_anonymous/2 ::
(
Host :: binary(),
Mechs :: mechanisms())
-> mechanisms()
).
filter_anonymous(Host, Mechs) ->
case ejabberd_auth_anonymous:is_sasl_anonymous_enabled(Host) of
true -> Mechs;
false -> Mechs -- [<<"ANONYMOUS">>]
end.
+50
View File
@@ -0,0 +1,50 @@
%%%----------------------------------------------------------------------
%%% 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-2013 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/4, mech_step/2]).
-behaviour(cyrsasl).
-record(state, {server = <<"">> :: binary()}).
start(_Opts) ->
cyrsasl:register_mechanism(<<"ANONYMOUS">>, ?MODULE, plain),
ok.
stop() -> ok.
mech_new(Host, _GetPassword, _CheckPassword, _CheckPasswordDigest) ->
{ok, #state{server = Host}}.
mech_step(#state{server = Server}, _ClientIn) ->
User = randoms:get_string(),
case ejabberd_auth:is_user_exists(User, Server) of
true -> {error, <<"not-authorized">>};
false -> {ok, [{username, User}, {auth_module, ejabberd_auth_anonymous}]}
end.
+199 -111
View File
@@ -3,162 +3,250 @@
%%% 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-2013 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/0,
mech_step/2]).
-author('alexey@sevcom.net').
-export([start/1, stop/0, mech_new/4, mech_step/2, parse/1]).
-include("ejabberd.hrl").
-behaviour(cyrsasl).
%-behaviour(gen_mod).
-record(state, {step, nonce, username, authzid}).
-type get_password_fun() :: fun((binary()) -> {false, any()} |
{binary(), atom()}).
start(Opts) ->
case ejabberd_auth:plain_password_required() of
true ->
ok;
false ->
cyrsasl:register_mechanism("DIGEST-MD5", ?MODULE),
ok
end.
-type check_password_fun() :: fun((binary(), binary(), binary(),
fun((binary()) -> binary())) ->
{boolean(), any()} |
false).
stop() ->
ok.
-record(state, {step = 1 :: 1 | 3 | 5,
nonce = <<"">> :: binary(),
username = <<"">> :: binary(),
authzid = <<"">> :: binary(),
get_password = fun(_) -> {false, <<>>} end :: get_password_fun(),
check_password = fun(_, _, _, _) -> false end :: check_password_fun(),
auth_module :: atom(),
host = <<"">> :: binary(),
hostfqdn :: binary() | [binary()]}).
mech_new() ->
{ok, #state{step = 1,
nonce = randoms:get_string()}}.
start(_Opts) ->
Fqdn = get_local_fqdn(),
?INFO_MSG("FQDN used to check DIGEST-MD5 SASL authentication: ~s",
[Fqdn]),
cyrsasl:register_mechanism(<<"DIGEST-MD5">>, ?MODULE,
digest).
stop() -> ok.
mech_new(Host, GetPassword, _CheckPassword,
CheckPasswordDigest) ->
{ok,
#state{step = 1, nonce = randoms:get_string(),
host = Host, hostfqdn = get_local_fqdn(),
get_password = GetPassword,
check_password = CheckPasswordDigest}}.
mech_step(#state{step = 1, nonce = Nonce} = State, _) ->
{continue,
"nonce=\"" ++ Nonce ++
"\",qop=\"auth\",charset=utf-8,algorithm=md5-sess",
%"\",qop=\"auth,auth-int\",charset=utf-8,algorithm=md5-sess",
<<"nonce=\"", Nonce/binary,
"\",qop=\"auth\",charset=utf-8,algorithm=md5-sess">>,
State#state{step = 3}};
mech_step(#state{step = 3, nonce = Nonce} = State, ClientIn) ->
mech_step(#state{step = 3, nonce = Nonce} = State,
ClientIn) ->
case parse(ClientIn) of
bad ->
{error, "bad-protocol"};
KeyVals ->
UserName = xml:get_attr_s("username", KeyVals),
AuthzId = xml:get_attr_s("authzid", KeyVals),
case ejabberd_auth:get_password(UserName) of
false ->
{error, "no-user"};
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,
bad -> {error, <<"bad-protocol">>};
KeyVals ->
DigestURI = proplists:get_value(<<"digest-uri">>, KeyVals, <<>>),
%DigestURI = xml:get_attr_s(<<"digest-uri">>, KeyVals),
UserName = proplists:get_value(<<"username">>, KeyVals, <<>>),
%UserName = xml:get_attr_s(<<"username">>, KeyVals),
case is_digesturi_valid(DigestURI, State#state.host,
State#state.hostfqdn)
of
false ->
?DEBUG("User login not authorized because digest-uri "
"seems invalid: ~p (checking for Host "
"~p, FQDN ~p)",
[DigestURI, State#state.host, State#state.hostfqdn]),
{error, <<"not-authorized">>, UserName};
true ->
AuthzId = proplists:get_value(<<"authzid">>, KeyVals, <<>>),
%AuthzId = xml:get_attr_s(<<"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, <<>>),
%xml:get_attr_s(<<"response">>, KeyVals),
fun (PW) ->
response(KeyVals,
UserName,
PW,
Nonce,
AuthzId,
<<"AUTHENTICATE">>)
end)
of
{true, _} ->
RspAuth = response(KeyVals, UserName, Passwd, Nonce,
AuthzId, <<"">>),
{continue, <<"rspauth=", RspAuth/binary>>,
State#state{step = 5, auth_module = AuthModule,
username = UserName,
authzid = AuthzId}};
_ ->
{error, "bad-auth"}
end
end
false -> {error, <<"not-authorized">>, UserName};
{false, _} -> {error, <<"not-authorized">>, UserName}
end
end
end
end;
mech_step(#state{step = 5,
username = UserName,
authzid = AuthzId} = State, "") ->
{ok, [{username, UserName}, {authzid, AuthzId}]};
mech_step(#state{step = 5, auth_module = AuthModule,
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">>}.
parse(S) ->
parse1(S, "", []).
parse(S) -> parse1(binary_to_list(S), "", []).
parse1([$= | Cs], S, Ts) ->
parse2(Cs, lists:reverse(S), "", Ts);
parse1([C | Cs], S, Ts) ->
parse1(Cs, [C | S], Ts);
parse1([], [], T) ->
lists:reverse(T);
parse1([], S, T) ->
bad.
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) -> lists:reverse(T);
parse1([], _S, _T) -> bad.
parse2([$" | Cs], Key, Val, Ts) ->
parse3(Cs, Key, Val, Ts);
parse2([C | Cs], Key, Val, Ts) ->
parse4(Cs, Key, [C | Val], Ts);
parse2([], _, _, _) ->
bad.
parse2([], _, _, _) -> bad.
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.
parse3([], _, _, _) -> bad.
parse4([$, | Cs], Key, Val, Ts) ->
parse1(Cs, "", [{Key, lists:reverse(Val)} | Ts]);
parse1(Cs, "", [{list_to_binary(Key), list_to_binary(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]).
parse1([], "", [{list_to_binary(Key), list_to_binary(lists:reverse(Val))} | Ts]).
is_digesturi_valid(DigestURICase, JabberDomain,
JabberFQDN) ->
DigestURI = stringprep:tolower(DigestURICase),
case catch str:tokens(DigestURI, <<"/">>) of
[<<"xmpp">>, Host] ->
IsHostFqdn = is_host_fqdn(Host, JabberFQDN),
(Host == JabberDomain) or IsHostFqdn;
[<<"xmpp">>, Host, ServName] ->
IsHostFqdn = is_host_fqdn(Host, JabberFQDN),
(ServName == JabberDomain) and IsHostFqdn;
_ ->
false
end.
is_host_fqdn(Host, Fqdn) when Host == Fqdn ->
true;
is_host_fqdn(_Host, <<"">>) ->
false;
is_host_fqdn(Host, [Fqdn | _FqdnTail]) when Host == Fqdn ->
true;
is_host_fqdn(Host, [Fqdn | FqdnTail]) when Host /= Fqdn ->
is_host_fqdn(Host, FqdnTail);
is_host_fqdn(_Host, _Fqdn) ->
false.
get_local_fqdn() ->
case catch get_local_fqdn2() of
Str when is_binary(Str) -> Str;
_ ->
<<"unknown-fqdn, please configure fqdn "
"option in ejabberd.cfg!">>
end.
digit_to_xchar(D) when (D >= 0) and (D < 10) ->
D + 48;
digit_to_xchar(D) ->
D + 87.
get_local_fqdn2() ->
case ejabberd_config:get_local_option(
fqdn, fun iolist_to_binary/1) of
ConfiguredFqdn when is_binary(ConfiguredFqdn) ->
ConfiguredFqdn;
undefined ->
{ok, Hostname} = inet:gethostname(),
{ok, {hostent, Fqdn, _, _, _, _}} =
inet:gethostbyname(Hostname),
list_to_binary(Fqdn)
end.
hex(S) ->
hex(S, []).
sha:to_hexlist(S).
hex([], Res) ->
lists:reverse(Res);
hex([N | Ns], Res) ->
hex(Ns, [digit_to_xchar(N rem 16),
digit_to_xchar(N div 16) | Res]).
proplists_get_bin_value(Key, Pairs, Default) ->
case proplists:get_value(Key, Pairs, Default) of
L when is_list(L) ->
list_to_binary(L);
L2 ->
L2
end.
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),
response(KeyVals, User, Passwd, Nonce, AuthzId,
A2Prefix) ->
Realm = proplists_get_bin_value(<<"realm">>, KeyVals, <<>>),
CNonce = proplists_get_bin_value(<<"cnonce">>, KeyVals, <<>>),
DigestURI = proplists_get_bin_value(<<"digest-uri">>, KeyVals, <<>>),
NC = proplists_get_bin_value(<<"nc">>, KeyVals, <<>>),
QOP = proplists_get_bin_value(<<"qop">>, KeyVals, <<>>),
MD5Hash = crypto:md5(<<User/binary, ":", Realm/binary, ":",
Passwd/binary>>),
A1 = case AuthzId of
"" ->
binary_to_list(
crypto:md5(User ++ ":" ++ Realm ++ ":" ++ Passwd)) ++
":" ++ Nonce ++ ":" ++ CNonce;
_ ->
binary_to_list(
crypto:md5(User ++ ":" ++ Realm ++ ":" ++ Passwd)) ++
":" ++ Nonce ++ ":" ++ CNonce ++ ":" ++ AuthzId
<<"">> ->
<<MD5Hash/binary, ":", Nonce/binary, ":", CNonce/binary>>;
_ ->
<<MD5Hash/binary, ":", Nonce/binary, ":", CNonce/binary, ":",
AuthzId/binary>>
end,
case QOP of
"auth" ->
A2 = A2Prefix ++ ":" ++ DigestURI;
_ ->
A2 = A2Prefix ++ ":" ++ DigestURI ++
":00000000000000000000000000000000"
end,
T = hex(binary_to_list(crypto:md5(A1))) ++ ":" ++ Nonce ++ ":" ++
NC ++ ":" ++ CNonce ++ ":" ++ QOP ++ ":" ++
hex(binary_to_list(crypto:md5(A2))),
hex(binary_to_list(crypto:md5(T))).
A2 = case QOP of
<<"auth">> ->
<<A2Prefix/binary, ":", DigestURI/binary>>;
_ ->
<<A2Prefix/binary, ":", DigestURI/binary,
":00000000000000000000000000000000">>
end,
T = <<(hex((crypto:md5(A1))))/binary, ":", Nonce/binary,
":", NC/binary, ":", CNonce/binary, ":", QOP/binary,
":", (hex((crypto:md5(A2))))/binary>>,
hex((crypto:md5(T))).
+65 -31
View File
@@ -1,56 +1,90 @@
%%%----------------------------------------------------------------------
%%% 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-2013 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$ ').
-export([start/1, stop/0, mech_new/0, mech_step/2, parse/1]).
-author('alexey@process-one.net').
-export([start/1, stop/0, mech_new/4, mech_step/2, parse/1]).
-behaviour(cyrsasl).
%-behaviour(gen_mod).
start(Opts) ->
cyrsasl:register_mechanism("PLAIN", ?MODULE),
-record(state, {check_password}).
start(_Opts) ->
cyrsasl:register_mechanism(<<"PLAIN">>, ?MODULE, plain),
ok.
stop() ->
ok.
stop() -> ok.
mech_new() ->
{ok, []}.
mech_new(_Host, _GetPassword, CheckPassword, _CheckPasswordDigest) ->
{ok, #state{check_password = CheckPassword}}.
mech_step(State, ClientIn) ->
case parse(ClientIn) of
[AuthzId, User, Password] ->
case ejabberd_auth:check_password(User, Password) of
true ->
{ok, [{username, User}, {authzid, AuthzId}]};
_ ->
{error, "bad-auth"}
end;
_ ->
{error, "bad-protocol"}
case prepare(ClientIn) of
[AuthzId, User, Password] ->
case (State#state.check_password)(User, Password) of
{true, AuthModule} ->
{ok,
[{username, User}, {authzid, AuthzId},
{auth_module, AuthModule}]};
_ -> {error, <<"not-authorized">>, User}
end;
_ -> {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.
parse(S) ->
parse1(S, "", []).
parse(S) -> parse1(binary_to_list(S), "", []).
parse1([0 | Cs], S, T) ->
parse1(Cs, "", [lists:reverse(S) | T]);
parse1([C | Cs], S, T) ->
parse1(Cs, [C | S], T);
parse1(Cs, "", [list_to_binary(lists:reverse(S)) | T]);
parse1([C | Cs], S, T) -> parse1(Cs, [C | S], T);
%parse1([], [], T) ->
% lists:reverse(T);
parse1([], S, T) ->
lists:reverse([lists:reverse(S) | T]).
lists:reverse([list_to_binary(lists:reverse(S)) | T]).
parse_domain(S) -> parse_domain1(binary_to_list(S), "", []).
parse_domain1([$@ | Cs], S, T) ->
parse_domain1(Cs, "", [list_to_binary(lists:reverse(S)) | T]);
parse_domain1([C | Cs], S, T) ->
parse_domain1(Cs, [C | S], T);
parse_domain1([], S, T) ->
lists:reverse([list_to_binary(lists:reverse(S)) | T]).
+209
View File
@@ -0,0 +1,209 @@
%%%----------------------------------------------------------------------
%%% File : cyrsasl_scram.erl
%%% Author : Stephen Röttger <stephen.roettger@googlemail.com>
%%% Purpose : SASL SCRAM authentication
%%% Created : 7 Aug 2011 by Stephen Röttger <stephen.roettger@googlemail.com>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2013 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_scram).
-author('stephen.roettger@googlemail.com').
-export([start/1, stop/0, mech_new/4, mech_step/2]).
-include("ejabberd.hrl").
-behaviour(cyrsasl).
-record(state,
{step = 2 :: 2 | 4,
stored_key = <<"">> :: binary(),
server_key = <<"">> :: binary(),
username = <<"">> :: binary(),
get_password :: fun(),
check_password :: fun(),
auth_message = <<"">> :: binary(),
client_nonce = <<"">> :: binary(),
server_nonce = <<"">> :: binary()}).
-define(SALT_LENGTH, 16).
-define(NONCE_LENGTH, 16).
start(_Opts) ->
cyrsasl:register_mechanism(<<"SCRAM-SHA-1">>, ?MODULE,
scram).
stop() -> ok.
mech_new(_Host, GetPassword, _CheckPassword,
_CheckPasswordDigest) ->
{ok, #state{step = 2, get_password = GetPassword}}.
mech_step(#state{step = 2} = State, ClientIn) ->
case str:tokens(ClientIn, <<",">>) of
[CBind, UserNameAttribute, ClientNonceAttribute]
when (CBind == <<"y">>) or (CBind == <<"n">>) ->
case parse_attribute(UserNameAttribute) of
{error, Reason} -> {error, Reason};
{_, EscapedUserName} ->
case unescape_username(EscapedUserName) of
error -> {error, <<"protocol-error-bad-username">>};
UserName ->
case parse_attribute(ClientNonceAttribute) of
{$r, ClientNonce} ->
case (State#state.get_password)(UserName) of
{false, _} -> {error, <<"not-authorized">>, UserName};
{Ret, _AuthModule} ->
{StoredKey, ServerKey, Salt, IterationCount} =
if is_tuple(Ret) -> Ret;
true ->
TempSalt =
crypto:rand_bytes(?SALT_LENGTH),
SaltedPassword =
scram:salted_password(Ret,
TempSalt,
?SCRAM_DEFAULT_ITERATION_COUNT),
{scram:stored_key(scram:client_key(SaltedPassword)),
scram:server_key(SaltedPassword),
TempSalt,
?SCRAM_DEFAULT_ITERATION_COUNT}
end,
ClientFirstMessageBare =
str:substr(ClientIn,
str:str(ClientIn, <<"n=">>)),
ServerNonce =
jlib:encode_base64(crypto:rand_bytes(?NONCE_LENGTH)),
ServerFirstMessage =
iolist_to_binary(
["r=",
ClientNonce,
ServerNonce,
",", "s=",
jlib:encode_base64(Salt),
",", "i=",
integer_to_list(IterationCount)]),
{continue, ServerFirstMessage,
State#state{step = 4, stored_key = StoredKey,
server_key = ServerKey,
auth_message =
<<ClientFirstMessageBare/binary,
",", ServerFirstMessage/binary>>,
client_nonce = ClientNonce,
server_nonce = ServerNonce,
username = UserName}}
end;
_Else -> {error, <<"not-supported">>}
end
end
end;
_Else -> {error, <<"bad-protocol">>}
end;
mech_step(#state{step = 4} = State, ClientIn) ->
case str:tokens(ClientIn, <<",">>) of
[GS2ChannelBindingAttribute, NonceAttribute,
ClientProofAttribute] ->
case parse_attribute(GS2ChannelBindingAttribute) of
{$c, CVal} when (CVal == <<"biws">>) or (CVal == <<"eSws">>) ->
%% biws is base64 for n,, => channelbinding not supported
%% eSws is base64 for y,, => channelbinding supported by client only
Nonce = <<(State#state.client_nonce)/binary,
(State#state.server_nonce)/binary>>,
case parse_attribute(NonceAttribute) of
{$r, CompareNonce} when CompareNonce == Nonce ->
case parse_attribute(ClientProofAttribute) of
{$p, ClientProofB64} ->
ClientProof = jlib:decode_base64(ClientProofB64),
AuthMessage =
iolist_to_binary(
[State#state.auth_message,
",",
str:substr(ClientIn, 1,
str:str(ClientIn, <<",p=">>)
- 1)]),
ClientSignature =
scram:client_signature(State#state.stored_key,
AuthMessage),
ClientKey = scram:client_key(ClientProof,
ClientSignature),
CompareStoredKey = scram:stored_key(ClientKey),
if CompareStoredKey == State#state.stored_key ->
ServerSignature =
scram:server_signature(State#state.server_key,
AuthMessage),
{ok, [{username, State#state.username}],
<<"v=",
(jlib:encode_base64(ServerSignature))/binary>>};
true -> {error, <<"bad-auth">>}
end;
_Else -> {error, <<"bad-protocol">>}
end;
{$r, _} -> {error, <<"bad-nonce">>};
_Else -> {error, <<"bad-protocol">>}
end;
_Else -> {error, <<"bad-protocol">>}
end;
_Else -> {error, <<"bad-protocol">>}
end.
parse_attribute(Attribute) ->
AttributeLen = byte_size(Attribute),
if AttributeLen >= 3 ->
AttributeS = binary_to_list(Attribute),
SecondChar = lists:nth(2, AttributeS),
case is_alpha(lists:nth(1, AttributeS)) of
true ->
if SecondChar == $= ->
String = str:substr(Attribute, 3),
{lists:nth(1, AttributeS), String};
true -> {error, <<"bad-format second char not equal sign">>}
end;
_Else -> {error, <<"bad-format first char not a letter">>}
end;
true -> {error, <<"bad-format attribute too short">>}
end.
unescape_username(<<"">>) -> <<"">>;
unescape_username(EscapedUsername) ->
Pos = str:str(EscapedUsername, <<"=">>),
if Pos == 0 -> EscapedUsername;
true ->
Start = str:substr(EscapedUsername, 1, Pos - 1),
End = str:substr(EscapedUsername, Pos),
EndLen = byte_size(End),
if EndLen < 3 -> error;
true ->
case str:substr(End, 1, 3) of
<<"=2C">> ->
<<Start/binary, ",",
(unescape_username(str:substr(End, 4)))/binary>>;
<<"=3D">> ->
<<Start/binary, "=",
(unescape_username(str:substr(End, 4)))/binary>>;
_Else -> error
end
end
end.
is_alpha(Char) when Char >= $a, Char =< $z -> true;
is_alpha(Char) when Char >= $A, Char =< $Z -> true;
is_alpha(_) -> false.
+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.

Some files were not shown because too many files have changed in this diff Show More