25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-10-31 15:21:38 +01:00
Commit Graph

5790 Commits

Author SHA1 Message Date
Konstantinos Kallas
15dd88385f Delete a development acme module 2017-08-19 16:58:06 +03:00
Konstantinos Kallas
f581e391ac Merge remote-tracking branch 'upstream/master' 2017-08-19 13:42:05 +03:00
Konstantinos Kallas
dd42d52ff9 Merge remove_account_option branch 2017-08-19 13:36:42 +03:00
Konstantinos Kallas
e45f7ddfec Cleanup some comments: 2017-08-19 13:32:13 +03:00
Konstantinos Kallas
7cc7b74f1e Add acme certificates for all configured hosts in ejabberd_pkix 2017-08-19 12:50:40 +03:00
Konstantinos Kallas
ddfe8742c7 Add behaviour ejabberd_config in ejabberd_acme in order to validate the config 2017-08-19 11:35:15 +03:00
Holger Weiss
ba9a79c89c Apply cosmetic changes to previous commit 2017-08-18 16:50:08 +02:00
Holger Weiss
13ad754ecc Suppress push notifications for online clients
When a client enabled push notifications during the current session,
notifications should be suppressed as long as the client is online.
Suppressing the notification didn't work for the case where the
notification was triggered by MAM, but this is now fixed.
2017-08-18 16:44:32 +02:00
Badlop
0b02d42836 Fix mod_multicast start and reading of configured limits (#1949) 2017-08-18 14:09:49 +02:00
Evgeniy Khramtsov
ee0a8d2966 Preserve correct order of deserialized XML elements
Fixes #1939
2017-08-18 10:20:27 +03:00
Evgeniy Khramtsov
6e20e9bcf9 Get rid of deprecated crypto functions 2017-08-17 19:32:15 +03:00
Holger Weiss
b8d2a72333 mod_stream_mgmt: Delete 'c2s_init' hook
Delete the 'c2s_init' hook when the last 'mod_stream_mgmt' instance is
stopped.
2017-08-17 18:25:06 +02:00
Holger Weiss
0760c7273c mod_stream_mgmt: Remove outdated TODO comment
The CSI queue is now flushed from mod_client_state.
2017-08-17 18:19:04 +02:00
Evgeniy Khramtsov
9bd099013f Don't attempt to access(2) a certificate file
Fixes #1375
2017-08-17 14:33:41 +03:00
Christophe Romain
68fb12153e Revert "Temporary remove recent last_item refactor"
This reverts commit 1820b4f63b.
2017-08-14 15:25:45 +02:00
Holger Weiss
e19d1e9571 Merge remote-tracking branch 'processone/pr/1938'
* processone/pr/1938:
  Let 'domain_certfile' take higher precedence
2017-08-14 14:43:03 +02:00
Christophe Romain
1820b4f63b Temporary remove recent last_item refactor 2017-08-14 09:43:02 +02:00
Holger Weiss
64150cc7c5 Let 'domain_certfile' take higher precedence
If a 'domain_certfile' is specified, use that instead of the
's2s_certfile' (or 'c2s_certfile').
2017-08-13 20:31:03 +02:00
Evgeniy Khramtsov
63aabed320 Apply URL decoding wherever possible
Fixes #1936
2017-08-13 19:18:19 +03:00
Konstantinos Kallas
051e2c639c Change some specs 2017-08-12 18:00:46 +03:00
Konstantinos Kallas
3b22efeaee Add throws when http requests fail
This was done in order to show the unexpected code in the top level
2017-08-12 17:26:07 +03:00
Konstantinos Kallas
a72a7f830a Add support to revoke a certificate by providing the pem
This is important so that a user can revoke a certificate that is not acquired or logged from our acme client
2017-08-12 17:14:23 +03:00
Konstantinos Kallas
73f0b6707a Move the ca_url to the config file 2017-08-12 15:59:54 +03:00
Christophe Romain
fd7bf7fed3 Fix typo from 9c5427e0c 2017-08-11 17:54:53 +02:00
Konstantinos Kallas
1aadb797b3 Remove the new account option from get certificate. There is no reason for having this 2017-08-11 14:10:55 +03:00
Konstantinos Kallas
7140c8d844 Format expired certificates differently in list_certificates 2017-08-11 13:28:17 +03:00
Christophe Romain
7a90cda8ff Process on_user_offline only from valid sessions 2017-08-11 12:05:14 +02:00
Evgeniy Khramtsov
35eeaa5869 Fix regression introduced by b82b93f8f0
Fixes #1928
2017-08-11 11:43:16 +03:00
Christophe Romain
024713a441 Remove temporary debug 2017-08-11 10:53:19 +02:00
Christophe Romain
32fbfe1981 Use correct c2s process sending PEP with multi devices 2017-08-11 10:32:36 +02:00
Christophe Romain
9c5427e0c2 PubSub: refactor send_last_items remove send_loop 2017-08-11 10:20:33 +02:00
Holger Weiss
7d3609d954 prosody2ejabberd: Support PEP import 2017-08-10 19:49:20 +02:00
Holger Weiss
fc7ba53c37 prosody2ejabberd: Remove superfluous 'catch' 2017-08-10 18:54:00 +02:00
Konstantinos Kallas
2b1fea01cd Renew certificate now renews all saved certificates that are close to expire
Before this commit renew_certificate only checked the hosts in the config file and renewd the certificates for those. However the user can request certificates apart from the hosts in the config file so he should be able to also renew them.
2017-08-10 18:54:26 +03:00
Konstantinos Kallas
c20bfb3422 Revoke Certificate: Jose Private Key
Instead of signing the jose object with the account private key, it now signs the object using the certificate private key. This is useful in case the user wants to revoke a old certificate whose account key doesn't exist anymore.
2017-08-10 17:23:13 +03:00
Konstantinos Kallas
011b7ac3f2 Support getting certificates for domains not specified in the configuration file 2017-08-10 15:26:35 +03:00
Evgeniy Khramtsov
a96d72330d Rename remove_room hook back 2017-08-10 14:49:05 +03:00
Christophe Romain
7d626b4f5c Add support of section 4.9.3.16 on rfc6120 2017-08-10 12:17:31 +02:00
Christophe Romain
e903348dd3 Fix pubsub send_loop after 3fec7824 2017-08-09 11:34:36 +02:00
Konstantinos Kallas
97a4d57f2e Remove some debugging functions 2017-08-08 18:00:37 +03:00
Evgeniy Khramtsov
3fec782494 Introduce 'hosts' option
The option can be used as a replacement of 'host' option
when several (sub)domains are needed to be registered for the module.
Note that you cannot combine both 'host' and 'hosts' in the config
because 'host' option is of a higher priority. Example:

mod_pubsub:
   ...
   hosts:
     - "pubsub1.@HOST@"
     - "pubsub2.@HOST@"

Fixes #1883
2017-08-08 17:46:26 +03:00
Konstantinos Kallas
9756b452d6 Implement renew_certificate command
This command renews the certificates for all domains that already have a certificate that has expired or is close to expiring. It is meant to be run automatically more often than the renewal process because if the certificates are valid nothing happens
2017-08-08 16:38:19 +03:00
Konstantinos Kallas
7fa9a387ae Try catch when formatting certificates 2017-08-08 12:45:57 +03:00
Konstantinos Kallas
48254a1e10 Change certificate notAfter to 90 days
As stated in Let's Encrypt FAQ: https://letsencrypt.org/docs/faq/
2017-08-08 12:23:13 +03:00
Christophe Romain
8679cfd2f3 Rename stop_all_connections to stop_s2s_connections for consistency 2017-08-07 15:06:07 +02:00
Evgeniy Khramtsov
2bceebc39d Get rid of export_all 2017-08-05 21:01:29 +03:00
Evgeniy Khramtsov
92532a0d66 Replace gen_fsm with p1_fsm to avoid warnings in OTP20+ 2017-08-05 20:58:21 +03:00
Holger Weiss
e1aaa1c99d ejabberd_c2s: Fix priority of 'certfile' option
Use the 'certfile' listener option rather than a 'domain_certfile' for
ejabberd_c2s listeners that have "tls: true" configured.  A
'domain_certfile' should only be preferred for STARTTLS connections.

Closes #1911.
2017-08-05 18:59:32 +02:00
Badlop
101e808124 Fix warning in previous commit 2017-08-04 13:09:17 +02:00
Christophe Romain
766b7c65a6 Merge pull request #1881 from weiss/push
Support XEP-0357: Push Notifications
2017-08-04 12:58:06 +02:00
Badlop
0516a3dc0e Remove unused 'managers' option, related to the deferred XEP-0321 (#1443) 2017-08-04 12:29:15 +02:00
Christophe Romain
3d185c0fb8 Fix missing validation from 633b68db1 (#1900) 2017-08-04 11:53:32 +02:00
Christophe Romain
06450f4a82 Keep disco#info on PEP compatible with XEP-0060 (#1717) 2017-08-03 15:48:23 +02:00
Christophe Romain
ce0beb550c Move pubsub sql export to pubsub_db_sql module 2017-08-03 15:34:01 +02:00
Christophe Romain
96c0483533 Fix Xref from 5dcc97c 2017-08-03 14:54:06 +02:00
Paweł Chmielowski
1274bcdba9 Change policy of user_resources command
This fixes issue #1908
2017-08-03 13:49:06 +02:00
Badlop
5dcc97c85a Preliminary export PubSub data from Mnesia tables to SQL file (#1571) 2017-08-03 10:53:01 +02:00
Konstantinos Kallas
e6e8e64f84 Improve return format of get_certificates command 2017-08-02 21:10:49 +03:00
Konstantinos Kallas
ac7105d39e Implement verbose list_certificates option 2017-08-02 19:36:11 +03:00
Christophe Romain
9edcbadd60 Fix clustering table reg_users_counter (#1889) 2017-08-02 14:36:32 +02:00
Christophe Romain
73509686f1 Fix getting cached last item (#1814) 2017-08-02 12:24:34 +02:00
Jing Sun
50511fcff7 Fix spec for mod_pubsub:subscribe_node 2017-08-02 10:31:42 +02:00
Christophe Romain
5e26190b98 Fix PubSub send last published items (#1572) 2017-08-01 17:00:52 +02:00
Christophe Romain
f22bd6eb46 Fix PEP node removal (#1839) 2017-08-01 15:40:34 +02:00
Christophe Romain
0ba6c78ed0 Fix disco#items on PEP service 2017-08-01 15:15:01 +02:00
Christophe Romain
636d68e0a9 Fix PEP node identity (#1717) 2017-08-01 14:41:16 +02:00
Christophe Romain
7e6d1c24c2 Update spec from custom and allow modules dependencies (#1740) 2017-08-01 13:33:14 +02:00
Konstantinos Kallas
3abe3aeeec Finish revoke_certificate and add specs
1. Add a try catch in the final revoke_certificate function
2. Also delete the certificate from persistent memory when it is done revoked
2017-07-29 19:10:06 +03:00
Paweł Chmielowski
51fa438340 Request basic auth dialog from browser 2017-07-28 16:08:05 +02:00
Christophe Romain
35a11526f9 Revert "Fix get_module_opt call in mod_block_strangers"
This reverts commit e5f64bc24a.
2017-07-27 18:23:10 +02:00
Paweł Chmielowski
0cfec92c14 Generate log messages when websocket is closed due timeouts 2017-07-27 17:53:16 +02:00
Alexey Shchepin
e5f64bc24a Fix get_module_opt call in mod_block_strangers 2017-07-27 17:48:41 +02:00
Konstantinos Kallas
cc6f4b90fb Support certificate revocation 2017-07-27 18:25:44 +03:00
Paweł Chmielowski
5c48ba4609 Set high water mark in lager for all backends 2017-07-27 17:14:03 +02:00
Jérôme Sautret
3ca62a797a Fix nick bug with MUC on riak 2017-07-27 17:06:34 +02:00
Christophe Romain
b66dab1313 Add muc related hooks 2017-07-27 17:02:06 +02:00
Marco Adkins
ea96615460 Ability to filter passwords from the log in mod_http_api (#1888)
* Ability to filter passwords from the log when creating users through the mod_http_api
2017-07-27 15:30:56 +02:00
Konstantinos Kallas
61d1411ab3 Sync fork with upstream 2017-07-26 09:54:23 +03:00
Konstantinos Kallas
92e38190aa Encode strings using a library function and not my custom made 2017-07-25 14:13:40 +03:00
Konstantinos Kallas
09918b5912 Add a try catch arounf list certificates 2017-07-23 21:47:22 +03:00
Christophe Romain
2e88d001d6 Fix errors from 1a0db3d 2017-07-21 11:42:03 +02:00
Badlop
1a0db3de3a Describe commands arguments and results in ejabberd_sm, ext_mod, mod_mam 2017-07-21 11:26:53 +02:00
Badlop
250876ea1a Fix indentation of commands lines 2017-07-21 11:26:47 +02:00
Holger Weiss
66510c1d78 Add mod_push_keepalive
This module tries to keep pending stream management sessions of push
clients alive (as long as the disconnected clients are reachable via
push notifications).
2017-07-21 01:07:36 +02:00
Holger Weiss
d6f1d3df5b Support XEP-0357: Push Notifications
Closes #1379.
2017-07-20 20:22:50 +02:00
Paweł Chmielowski
e216654c52 Don't add indentation after single item result in docs 2017-07-18 17:48:53 +02:00
Christophe Romain
cc3391cc1c Use string:join instead of lists:join 2017-07-18 15:43:46 +02:00
Christophe Romain
b8d56a7c11 Improve formatting of documented API parameters 2017-07-18 15:01:01 +02:00
Konstantinos Kallas
9ce1f12b66 Pretty print list-certificates 2017-07-18 13:28:44 +03:00
Paweł Dorofiejczyk
de1a66dfbe Fix old route record in mnesia's route table haven't been remove when restarting in some cases (#1184) 2017-07-17 15:14:30 +02:00
Konstantinos Kallas
2e18122cd9 Print validity in list-certificates 2017-07-17 13:40:53 +03:00
Konstantinos Kallas
8fe551cc68 Add a stub for the list-certificates command 2017-07-17 11:39:27 +03:00
Konstantinos Kallas
09c3496ff1 Remove httpdir from some function arguments as we now use the built in ejabberd http server for authorizations 2017-07-17 10:48:57 +03:00
Konstantinos Kallas
fa3108e6e2 Save acquired certificates in persistent storage 2017-07-17 10:42:09 +03:00
Konstantinos Kallas
9cf596c67b Change the persistent data structure from a record to a proplist
This is done so that possible future updates to the data structure don't break existing code.
With this change it will be possible to update the data structure and keep the same old persistent data file, which will still have the expected list format but with more properties
2017-07-17 09:59:38 +03:00
Konstantinos Kallas
478a12637d Separate the persistent data structure functions 2017-07-17 09:40:36 +03:00
Konstantinos Kallas
4d977535f2 Make some persistent data wrapper functions 2017-07-17 09:35:37 +03:00
Paweł Chmielowski
2cd193f97c Expand catch block used to report errors in doc generator 2017-07-14 17:18:07 +02:00
Paweł Chmielowski
33a9d6a3c3 Fix args_examples from last commit 2017-07-14 17:17:26 +02:00
Badlop
fdb863ce70 Describe even more command arguments and results in mod_admin_extra 2017-07-14 16:43:30 +02:00
Konstantinos Kallas
77a96b0ec6 Solve acme challenges using built in http server 2017-07-12 19:23:52 +03:00
Konstantinos Kallas
5199ede4a2 Changle acme file permissions
Also changed some specs
2017-07-11 11:11:00 +03:00
Konstantinos Kallas
c50f6c218f Clean up code by adding throws instead of passing the error value 2017-07-07 18:32:07 +03:00
Konstantinos Kallas
5866124138 Clean up get_certificate code 2017-07-07 17:37:44 +03:00
Holger Weiss
f6bdc6fdb2 mod_privacy: Don't crash while copying c2s state
Don't assume 'privacy_active_list' is set when c2s_copy_session/2 is
called.
2017-07-07 14:28:22 +02:00
Holger Weiss
8f25baada6 mod_privacy: Apply cosmetic change to type spec 2017-07-07 14:25:55 +02:00
Badlop
aaef1a14b4 Fix set_presence command to work in recent ejabberd 2017-07-07 10:55:08 +02:00
Evgeniy Khramtsov
22e8f5fd51 Add copyright and fix description for some sources 2017-07-06 21:27:04 +03:00
Paweł Chmielowski
3b0eee785f Handle new possible result from ejabberd_config.add_option 2017-07-06 17:19:22 +02:00
Evgeniy Khramtsov
ffdaff3740 Make ejabberd_cluster modular
For setting the cluster backend new global option 'cluster_backend' is
introduced. The default and only available value at the moment is 'mnesia'
2017-07-06 15:47:35 +03:00
Paweł Chmielowski
56d273477e Remove old command calling interface 2017-07-06 14:24:25 +02:00
Evgeniy Khramtsov
a35b9dd9cc Close accepted socket if sockname/peername has failed
Fixes #1834
2017-07-06 14:49:21 +03:00
Konstantinos Kallas
56fc0efbc8 Split ACME module into two
1. A communications module that handles all requets/responses and other low level stuff that have to do with the ACME CA
2. A head module that will do all the useful stuff
2017-07-04 11:44:22 +03:00
Konstantinos Kallas
d3c477646f Add support for command get_certificates, very crude 2017-07-03 13:37:32 +03:00
Paweł Chmielowski
a58de70f06 Fix invalid argument in get_messages_susbset
This should fix #1818
2017-06-30 14:24:35 +02:00
Christophe Romain
800965a957 Avoid useless calls on simples subscriptions (#1313) 2017-06-29 15:24:18 +02:00
Alexey Shchepin
fcf672c50e Add allow_local_users to mod_block_strangers (#1804, #1809) 2017-06-29 14:55:24 +03:00
Badlop
b66e369a1d Fix Salt import from prosody SCRAMmed password (#1803) 2017-06-29 10:28:44 +02:00
Badlop
3c7c71cfa6 In offline export to SQL, first write all DELETE, later all INSERT (#1509) 2017-06-28 11:14:59 +02:00
Konstantinos Kallas
637d9b054b Support get-cert, revoke-cert. Also cleaned some typespecs 2017-06-26 19:03:21 +03:00
Badlop
1bfb0ab39c Fix username in mam export (#1510)(thanks to themaverik) 2017-06-26 14:38:12 +02:00
Badlop
4ef1cdec12 Write validator for mod_multicast's limits option 2017-06-26 13:39:50 +02:00
Badlop
0534678028 Use YAML syntax for limits option in mod_multicast 2017-06-26 11:26:53 +02:00
Paweł Chmielowski
70606d7f1a Catch exception that may happen when sending data over websocket
This fixes #1667
2017-06-23 17:19:37 +02:00
Evgeny Khramtsov
54e6e1a5fb Merge pull request #1793 from marcphilipp/bugfix/set_room_affiliation_master
Fix mod_muc_admin:set_room_affiliation
2017-06-22 18:28:12 +04:00
Evgeniy Khramtsov
5bb7a0b0db Don't let a receiver to crash if a controller is unavailable
Fixes #1796
2017-06-22 16:58:46 +03:00
Konstantinos Kallas
330456bcf0 Indent using Emacs 2017-06-22 14:47:56 +03:00
Konstantinos Kallas
396bd5eb3d Removed some ?INFO_MSG 2017-06-22 11:38:40 +03:00
Konstantinos Kallas
dd79dea81d Support new_cert, make certificate request 2017-06-22 11:31:50 +03:00
Marc Philipp
976a8c9cc9 Fix mod_muc_admin:set_room_affiliation 2017-06-21 17:20:58 +02:00
Holger Weiss
950aca380c mod_client_state: Reset state on session resume
Don't restore the previous CSI state when a stream management session is
resumed.
2017-06-21 01:05:46 +02:00
Holger Weiss
985b0a1933 mod_stream_mgmt: Add missing function specs 2017-06-21 01:00:29 +02:00
Christophe Romain
a7841ed486 Improve API documentation generator 2017-06-20 14:45:57 +02:00
Christophe Romain
a11e833a98 Make ext_mod api return rescode 2017-06-20 14:45:31 +02:00
Paweł Chmielowski
62ee051c6e Fix invalid {args,result}_examples in mod_muc_admin 2017-06-19 16:31:07 +02:00
Paweł Chmielowski
5424ead01d Generate better errors when not being able to generate documentation 2017-06-19 16:30:45 +02:00
Paweł Chmielowski
96d385bf82 Another tweak to md generator 2017-06-19 15:10:34 +02:00
Paweł Chmielowski
8e2258b16a Update markdown api document generator 2017-06-19 15:02:02 +02:00
Konstantinos Kallas
dc4c00a78c Add support for solving http-01 challenge 2017-06-18 13:20:47 +03:00
Konstantinos Kallas
1d1250b056 Cleanup acme_challenge.erl, move types and records in ejabberd_acme.hrl 2017-06-17 19:06:39 +03:00
Badlop
f87b46f454 Fix srg_user_add/del for non-Mnesia database backends (#1780) 2017-06-15 11:05:41 +02:00
Konstantinos Kallas
133d2ae6d5 Derive the alg field of the JWS object using a erlang-jose library function rather than hardcoding 2017-06-15 11:47:29 +03:00
Christophe Romain
5418b37314 Add pubsub import from prosody/metronome 2017-06-15 09:56:05 +02:00
Konstantinos Kallas
4fc3d511ce Synchronize fork 2017-06-14 12:35:01 +03:00
Konstantinos Kallas
032ce9e53c Refactor get requests, Implement authorization handling functions 2017-06-14 12:12:43 +03:00
Evgeniy Khramtsov
0aa64381ff Fix IP address parsing for mod_metrics 2017-06-13 16:54:29 +03:00
Konstantinos Kallas
4b1c59e199 Major Refactoring, Separated Logic from Requests 2017-06-12 21:35:43 +03:00
Konstantinos Kallas
c25aa8378f Add new-authz, refactor the http requests that all used the same code 2017-06-12 15:31:48 +03:00
Badlop
63b6e0d381 Switch access rule delete_old_users with protect_old_users (#1772) 2017-06-09 19:18:47 +02:00
Konstantinos Kallas
911b8188d2 Refactor the http response handlers.
Encapsulate some dangerous calls with try catch.
2017-06-09 19:47:50 +03:00
Konstantinos Kallas
167edacb5f Make Stylistic Changes in order to conform to guidelines:
1. Remove trailing whitespace
2. Remove Macros
3. Handle all erroneous response codes the same way
4. Add specs
Also don't return nonces anymore when the http response is negative.
2017-06-09 18:53:54 +03:00
Konstantinos Kallas
53d47483c8 Implement some basic account handling functions 2017-06-09 15:49:27 +03:00
Paweł Chmielowski
62806607bf Add missing , 2017-06-09 12:10:40 +02:00
Badlop
b25b5c2f98 Improve export2sql explanation; remove obsolete and duplicated command 2017-06-09 12:02:49 +02:00
Badlop
ee8bbccb2a Fix and document push_roster_all command 2017-06-08 19:54:34 +02:00
Konstantinos Kallas
926de60f5d Support for new_cert 2017-06-05 17:10:37 +03:00
Konstantinos Kallas
df5d673e63 Solve http-01 challenge 2017-06-03 12:34:15 +03:00
Badlop
f6767ed061 Fix rooms list in WebAdmin (#1753) 2017-06-01 19:27:41 +02:00
Badlop
0982a9bc3c Parse correctly presence_broadcast option in change_room_option command 2017-05-29 12:49:53 +02:00
Evgeniy Khramtsov
50327a0cfc Fix case clause
Fixes #1746
2017-05-25 13:46:17 +03:00
Holger Weiss
5802062746 Cosmetic change: Fix indentation errors 2017-05-24 17:16:16 +02:00
Evgeniy Khramtsov
69de1780a0 Introduce --enable-stun and --enable-sip configure options
STUN/TURN and SIP is not compiled by default anymore.
Use --enable-stun, --enable-sip or --enable-all to enable them.
2017-05-23 13:12:48 +03:00
Evgeniy Khramtsov
6e8895f9e9 Get rid of sql_queries.erl 2017-05-23 12:25:13 +03:00
Evgeniy Khramtsov
e93762a720 Deprecate misc:encode_base64/1 and misc:decode_base64/1 2017-05-23 10:43:26 +03:00
Evgeniy Khramtsov
268065e5c4 Validate all certfiles on startup 2017-05-23 09:27:52 +03:00
Evgeniy Khramtsov
d7878ef131 Implement cache for mod_announce 2017-05-22 16:14:28 +03:00
Badlop
908bedeaa6 Describe command arguments and results in mod_muc_admin 2017-05-22 12:55:32 +02:00
Evgeniy Khramtsov
504860f065 Don't leak with UDP sockets 2017-05-22 11:29:53 +03:00
Evgeniy Khramtsov
3a96d72a7f Implement cache for mod_private 2017-05-22 10:34:57 +03:00
Evgeniy Khramtsov
d88e4d495f Don't store messages via a single process 2017-05-21 23:21:13 +03:00
Evgeniy Khramtsov
66a4e405e0 Improve mod_metrics
* Do not spawn a process per event
* Avoid UDP socket creation on every event
* Get rid of calls to str.erl module
* Add options 'ip' and 'port'
2017-05-21 14:24:57 +03:00
Evgeniy Khramtsov
0a77b9f43e Get rid of a workaround against old Erlang bug 2017-05-21 13:30:46 +03:00
Evgeniy Khramtsov
470669fa6b Get rid of db_type warning for mod_vcard_xupdate 2017-05-21 11:40:24 +03:00
Evgeniy Khramtsov
af29fb21df Get rid of detection of modules' db_type detection
The detection sometimes leads to errorneous warnings.
We need to improve it later. For now I just remove the
detection as it doesn't fully work anyway.
2017-05-21 11:33:16 +03:00
Evgeniy Khramtsov
be50d57ddd Declare ejabberd_oauth behaviour 2017-05-21 11:31:30 +03:00
Evgeniy Khramtsov
35d19b32f4 Implement cache for mod_privacy/mod_blocking 2017-05-20 22:36:32 +03:00
Paweł Chmielowski
654d907dcf export_all is not needed here 2017-05-19 17:03:41 +02:00
Paweł Chmielowski
b013c29c7e Fix values put in args_examples 2017-05-19 16:56:37 +02:00
Evgeniy Khramtsov
0ed23980a6 Get rid of Mnesia transaction in get_vcard/2 2017-05-18 21:24:47 +03:00
Evgeniy Khramtsov
a78862e05e The default 'iqdisc' is now 'no_queue' 2017-05-18 19:13:18 +03:00
Evgeniy Khramtsov
bcb44ccb6f Implement cache for mod_last 2017-05-18 13:21:17 +03:00
Evgeniy Khramtsov
736a182544 ?SQL_UPSERT returns 'ok' on success 2017-05-18 12:10:36 +03:00
Evgeniy Khramtsov
97bb1250ba Avoid erroneous usage of ?MODULE macro 2017-05-18 12:09:28 +03:00
Evgeniy Khramtsov
b0b7ac101c Fix function_clause after authentication refactoring
Fixes https://github.com/processone/ejabberd-contrib/issues/213
2017-05-18 09:51:04 +03:00
Evgeniy Khramtsov
6691c59a7a Clean up database code related to mod_vcard_xupdate 2017-05-17 19:29:19 +03:00
Evgeniy Khramtsov
1391d5a304 Use disc_only_copies for oauth_token Mnesia table 2017-05-17 17:42:22 +03:00
Evgeniy Khramtsov
8f595b58a7 Increase gen_mod's supervisor shutdown time 2017-05-17 17:33:07 +03:00
Evgeniy Khramtsov
1925b94131 Implement cache for mod_vcard and mod_vcard_xupdate 2017-05-17 17:13:34 +03:00
Konstantinos Kallas
ddb043aa71 More account support(Update/Info) 2017-05-17 16:55:26 +03:00
Evgeniy Khramtsov
fc794b680a Add cache options to the validator 2017-05-17 16:03:41 +03:00
Evgeniy Khramtsov
a71065fcda Ciphers should be a binary string 2017-05-17 15:42:18 +03:00
Evgeniy Khramtsov
7165196211 Get rid of unused variable 2017-05-17 15:24:32 +03:00
Evgeniy Khramtsov
f782955c06 Implement cache for roster 2017-05-17 14:47:35 +03:00
Evgeniy Khramtsov
3f13396d73 Fix use_cache/1 callback 2017-05-15 08:58:37 +03:00
Konstantinos Kallas
88365ed507 New account functional, very crude 2017-05-15 01:41:09 +03:00
Evgeniy Khramtsov
061d5f2380 Shut up dialyzer/xref if public_key:short_name_hash/1 is not available 2017-05-13 13:11:08 +03:00
Evgeniy Khramtsov
2d17a2850c Only validate certfiles if public_key:short_name_hash/1 is available 2017-05-12 17:51:17 +03:00
Evgeniy Khramtsov
cc58ce6301 Introduce Certficate Manager
The major goal is to simplify certificate management in ejabberd.
Currently it requires some effort from a user to configure certficates,
especially in the situation where a lot of virtual domains are hosted.

The task is splitted in several sub-tasks:
* Implement basic certificate validator. The validator should check all
configured certificates for existence, validity, duration and so on. The
validator should not perform any actions in the case of errors except
logging an error message. This is actually implemented by this commit.
* All certificates should be configured inside a single section (something
like 'certfiles') where ejabberd should parse them, check the full-chain,
find the corresponding private keys and, if needed, resort chains and
split the certficates into separate files for easy to use by fast_tls.
* Options like 'domain_certfile', 'c2s_certfile' or 's2s_certfile' should
probably be deprecated, since the process of matching certificates with the
corresponding virtual hosts should be done automatically and these options
only introduce configuration errors without any meaningful purpose.
2017-05-12 16:27:09 +03:00
Evgeniy Khramtsov
d3c8fb7705 Check presence of some files during option validation 2017-05-12 09:34:57 +03:00
Evgeniy Khramtsov
9fe16a29e1 Gracefully process malformed passwords during password change 2017-05-11 17:15:23 +03:00
Evgeniy Khramtsov
31a3cc7b10 Gracefully process malformed passwords during registration 2017-05-11 17:09:26 +03:00
Evgeniy Khramtsov
a8dc5f80d1 Add 'access_remove' ACL to mod_register 2017-05-11 16:37:01 +03:00
Evgeniy Khramtsov
cdb191bb48 Rename is_user_exists -> user_exists 2017-05-11 15:49:06 +03:00
Evgeniy Khramtsov
633b68db11 Use cache for authentication backends
The commit introduces the following API incompatibilities:

In ejabberd_auth.erl:
* dirty_get_registered_users/0 is renamed to get_users/0
* get_vh_registered_users/1 is renamed to get_users/1
* get_vh_registered_users/2 is renamed to get_users/2
* get_vh_registered_users_number/1 is renamed to count_users/1
* get_vh_registered_users_number/2 is renamed to count_users/2

In ejabberd_auth callbacks
* plain_password_required/0 is replaced by plain_password_required/1
  where the argument is a virtual host
* store_type/0 is replaced by store_type/1 where the argument is
  a virtual host
* set_password/3 is now an optional callback
* remove_user/3 callback is no longer needed
* remove_user/2 now should return `ok | {error, atom()}`
* is_user_exists/2 now must only be implemented for backends
  with `external` store type
* check_password/6 is no longer needed
* check_password/4 now must only be implemented for backends
  with `external` store type
* try_register/3 is now an optional callback and should return
  `ok | {error, atom()}`
* dirty_get_registered_users/0 is no longer needed
* get_vh_registered_users/1 is no longer needed
* get_vh_registered_users/2 is renamed to get_users/2
* get_vh_registered_users_number/1 is no longer needed
* get_vh_registered_users_number/2 is renamed to count_users/2
* get_password_s/2 is no longer needed
* get_password/2 now must only be implemented for backends with
  `plain` or `scram` store type

Additionally, the commit introduces two new callbacks:
* use_cache/1 where the argument is a virtual host
* cache_nodes/1 where the argument is a virtual host

New options are also introduced: `auth_use_cache`, `auth_cache_missed`,
`auth_cache_life_time` and `auth_cache_size`.
2017-05-11 14:37:21 +03:00
Badlop
e890525788 Use misc:atom_to_binary/1 instead of the deprecated jlib.erl (#1510) 2017-05-10 12:05:52 +02:00
Badlop
6b8c61b3a2 Update comment: aux.erl was renamed to misc.erl 2017-05-10 12:03:13 +02:00
Badlop
4849ac9781 Use jid:encode/1 instead of the deprecated jid:to_string/1 (#1510) 2017-05-10 11:22:15 +02:00
Lamtei W
cd18d3d8a7 Fix: update sql statement, added missing delimeter for sql queries 2017-05-10 11:22:11 +02:00
Lamtei W
a0908ba393 Added export function for mam module 2017-05-10 11:22:07 +02:00
Konstantinos Kallas
02dbe39b06 Examining jose functionality 2017-05-09 23:27:37 +03:00
Konstantinos Kallas
67a00939db Small improvements to the acme module 2017-05-08 20:29:58 +03:00
Evgeniy Khramtsov
5d7a704ca5 Remove forgotten 'export_all' 2017-05-08 17:23:29 +03:00
Evgeniy Khramtsov
cee90a886e Don't list 'redis_pool_size' option multiple times 2017-05-08 17:22:34 +03:00
Evgeniy Khramtsov
6b6d07745d Split some functions in smaller ones 2017-05-08 16:29:01 +03:00
Konstantinos Kallas
05362b9a7d Very basic acme client, only stubs 2017-05-08 15:35:11 +03:00
Evgeniy Khramtsov
8368a0850a Don't call gen_mod:get_opt() outside of modules 2017-05-08 14:34:35 +03:00
Evgeniy Khramtsov
01a2c9fe12 Add type specs for Module:opt_type/1 2017-05-08 12:59:28 +03:00
Evgeniy Khramtsov
3241c2506b Introduce 'sql_connect_timeout' option (#1698) 2017-05-05 16:25:10 +03:00
Evgeniy Khramtsov
48d6ae1def Introduce 'sql_query_timeout' option
Fixes #1698
2017-05-05 13:20:28 +03:00
Evgeniy Khramtsov
f2dc8c0442 Emit deprecation warning for SM related listening options 2017-05-05 12:31:17 +03:00
Evgeniy Khramtsov
b174e2c9c6 Improve validation of second-level options 2017-05-05 11:11:17 +03:00
Evgeniy Khramtsov
fb17c1b99f Make it possible to validate second-level options 2017-05-04 17:34:32 +03:00
Paweł Chmielowski
c64e77a08c Catch exceptions from acl:add_list in web admin 2017-05-04 12:01:22 +02:00
Evgeniy Khramtsov
cf53d834e9 Introduce 'iqdisc' global option 2017-05-04 12:24:47 +03:00
Evgeniy Khramtsov
a2a4a4970e Validate module options on start_module/2 2017-05-04 09:09:10 +03:00
Badlop
31fa36003f Parse ldap_uids in mod_vcard_ldap like in eldap_utils (#319) 2017-05-03 23:32:56 +02:00
Evgeniy Khramtsov
54cc49bc70 Validate new options before module reloading 2017-05-01 14:01:12 +03:00
Evgeniy Khramtsov
fe662c1a0a Don't forget to delete digraph 2017-05-01 10:14:00 +03:00
Evgeniy Khramtsov
fddd6110e0 Don't validate an option in gen_mod:get*opt() functions
The changes are very similar to those from previous commit:
* Now there is no need to pass validating function in
  gen_mod:get_opt() and gen_mod:get_module_opt() functions,
  because the modules' configuration keeps already validated values.
* New functions gen_mod:get_opt/2 and gen_mod:get_module_opt/3 are
  introduced.
* Functions gen_mod:get_opt/4 and get_module_opt/5 are deprecated.
  If the functions are still called, the "function" argument is
  simply ignored.
* Validating callback Mod:listen_opt_type/1 is introduced to validate
  listening options at startup.
2017-04-30 19:01:47 +03:00
Evgeniy Khramtsov
2b63d07329 Merge branch 'new-option-validation' 2017-04-29 11:48:57 +03:00
Evgeniy Khramtsov
b82b93f8f0 Don't validate an option in ejabberd_config:get_option() functions
The commit introduces the following changes:
* Now there is no need to pass validating function in
  ejabberd_config:get_option() functions, because the configuration
  keeps already validated values.
* New function ejabberd_config:get_option/1 is introduced
* Function ejabberd_config:get_option/3 is deprecated. If the function
  is still called, the second argument (validating function) is simply
  ignored.
* The second argument for ejabberd_config:get_option/2 is now
  a default value, not a validating function.
2017-04-29 11:39:40 +03:00
Evgeniy Khramtsov
7129aebe76 Don't re-define validation functions in multiple places 2017-04-28 13:23:32 +03:00
Paweł Chmielowski
2bcf822637 Fix elixir tests 2017-04-28 10:08:09 +02:00
Evgeniy Khramtsov
0b93cb7ece Store options using p1_options module 2017-04-27 19:44:58 +03:00
Badlop
d18d99e8ec Bug requesting non-existent data with private_get command (#1690) 2017-04-26 23:14:30 +02:00
Holger Weiss
9b8364b6c8 Merge remote-tracking branch 'processone/pr/1699'
* processone/pr/1699:
  Add support for HTTP File Upload, version 0.3.0
2017-04-26 21:18:16 +02:00
Badlop
c0eb85ce53 Allow a room admin also to subscribe another JID 2017-04-26 01:30:12 +02:00
Holger Weiss
56a4bf8f3c mod_stream_mgmt: Fix typo in variable name 2017-04-25 22:37:27 +02:00
Holger Weiss
9cc332d6b3 mod_stream_mgmt: Fix 'if_offline' detection 2017-04-25 22:32:03 +02:00
Evgeniy Khramtsov
120682ec8b Include original 'id' and 'type' attributes in offline event 2017-04-25 17:59:26 +03:00
Evgeniy Khramtsov
069bf6dec6 Make sure only jabberevent tag is present in offline event 2017-04-25 17:21:24 +03:00
Holger Weiss
d0f3696596 randoms: Keep compatibility with Erlang/OTP 17 2017-04-24 23:51:01 +02:00
Evgeniy Khramtsov
c923bb5c10 Avoid changing configuration on listener deletion 2017-04-23 16:42:54 +03:00
Evgeniy Khramtsov
9a93acc62a Improve Mnesia tables creation and transformation 2017-04-23 16:37:58 +03:00
Evgeniy Khramtsov
8770fc98e1 Use round-robin algorithm when selecting worker from DB pool 2017-04-23 11:54:56 +03:00
Evgeniy Khramtsov
18433e289f Add clear_cache admin command 2017-04-22 11:33:39 +03:00
Holger Weiss
168712ebbd Add support for HTTP File Upload, version 0.3.0
Support the current XEP-0363 version in addition to the previous
revisions.
2017-04-21 18:36:53 +02:00
Evgeniy Khramtsov
02790b105e Speedup Mnesia tables initialization 2017-04-21 12:27:15 +03:00
Evgeniy Khramtsov
d88c08e074 Use new cache API in mod_shared_roster_ldap 2017-04-21 10:43:14 +03:00
Evgeniy Khramtsov
9937cb48fd Use new cache API in ejabberd_oauth 2017-04-21 09:02:10 +03:00
Evgeniy Khramtsov
5444475b1d Correct option validation 2017-04-20 18:55:16 +03:00
Evgeniy Khramtsov
264a40f217 Use new cache API in mod_mam 2017-04-20 18:52:16 +03:00
Evgeniy Khramtsov
a26f90a346 Use new cache API in mod_caps 2017-04-20 18:18:26 +03:00
Badlop
ca9d04ba6b Fix private_get command sending a proper xmlel (#1683) 2017-04-20 16:50:08 +02:00
Badlop
4e86a71ab2 When getting user rooms, filter by the serverhost as expected (#1683) 2017-04-20 16:49:32 +02:00
Holger Weiss
3682888655 mod_stream_mgmt: Preserve stanza count on timeout
If a pending stream management session times out, call
ejabberd_c2s:process_terminated/2 *before* storing the incoming stanza
count.  Without this change, the session table entry that holds the
stanza count was purged while closing the session.
2017-04-19 23:04:20 +02:00
Holger Weiss
3adf720bc1 Use #jid{} type for #muc_unsubscribe.jid 2017-04-19 22:18:23 +02:00
Badlop
d7a999eaf5 Don't use jid:from_string as it's deprecated, see jid.erl line 43 2017-04-19 21:47:59 +02:00
Evgeniy Khramtsov
64333f69ea Don't try to load already loaded applications 2017-04-19 11:40:58 +03:00
Holger Weiss
b8a7720986 ejabberd_c2s: Don't close session on stream resume
Don't let ejabberd_c2s close the session and unset presence if a
'c2s_terminated' callback stops hook execution, as is done in
mod_stream_mgmt:c2s_terminated/2 on resumption.

Fixes #1680.
2017-04-19 01:20:28 +02:00
Evgeniy Khramtsov
7c9415356d Function fix_from_to/2 should not crash when 'from' is undefined
Fixes #1678
2017-04-18 01:38:35 +03:00
getong
ab751d290a lager_crash_log in some cases not run, catch it 2017-04-17 12:07:23 +08:00
Evgeniy Khramtsov
f496d22074 Improve logging message 2017-04-16 23:56:12 +03:00
Evgeniy Khramtsov
86b680a3ad Move compile_exprs() to misc module 2017-04-16 20:05:46 +03:00
Evgeniy Khramtsov
78dba217bf Speedup configuration options lookup
We now avoid excessive ETS lookups; instead, we use dynamically
compiled module 'ejabberd_options' keeping the configuration options
2017-04-16 15:29:10 +03:00
Evgeniy Khramtsov
878c762cdf Log human readable description when configuration file is not found 2017-04-16 01:22:55 +03:00
Evgeniy Khramtsov
920f2678ac Report configuration file location on startup 2017-04-16 01:02:46 +03:00
Evgeniy Khramtsov
b6182e6fe8 Speedup loading of translation files
A dump of 'translations' ETS table is now stored on disc.
The table is only re-created when new/deleted/modified translation
files are detected; otherwise, the ETS table is restored from
the dump file on startup.
2017-04-16 00:29:55 +03:00
Evgeniy Khramtsov
41fe062a8d Lower log level for some messages 2017-04-15 15:47:00 +03:00
Evgeniy Khramtsov
4c5f97bb9a Add Riak as mod_proxy65 RAM backend 2017-04-15 15:38:48 +03:00
Evgeniy Khramtsov
f9c24ab16d Add Riak as mod_carboncopy RAM backend 2017-04-15 14:41:14 +03:00
Evgeniy Khramtsov
72b536b52d Add Riak as BOSH RAM backend 2017-04-15 13:52:36 +03:00
Evgeniy Khramtsov
598c79ff86 Fix cleaning of Riak route table 2017-04-15 13:36:29 +03:00
Evgeniy Khramtsov
da66eb5714 Add Riak as router RAM backend 2017-04-15 13:07:56 +03:00
Evgeniy Khramtsov
c290b4284f Fix closing of outbound S2S connections 2017-04-15 11:15:50 +03:00
Evgeniy Khramtsov
fcb978248f Add Riak as session manager RAM backend 2017-04-15 10:02:32 +03:00
Evgeniy Khramtsov
5774edfe79 Improve ejabberd_c2s:close() 2017-04-15 08:30:41 +03:00
Evgeniy Khramtsov
5c23187d2c Make sure stream trailer is sent in the very end 2017-04-14 20:56:01 +03:00
Evgeniy Khramtsov
0a7eb33772 Better process session close 2017-04-14 20:41:25 +03:00
Evgeniy Khramtsov
9de075029b Fix a typo 2017-04-14 20:40:39 +03:00
Evgeniy Khramtsov
d110cbb6e2 Fix ejabberd_router:is_my_route/1 2017-04-14 20:34:00 +03:00
Evgeniy Khramtsov
e40baf0bda Use cache in front of Redis/SQL RAM backends 2017-04-14 13:57:52 +03:00
Badlop
177d5fec86 Allow a room admin to unsubscribe another JID 2017-04-13 22:37:39 +02:00
Holger Weiss
87ae2d7996 mod_muc_room: Replace deprecated function call
Use jid:decode/1 instead of jlib:string_to_jid/1.
2017-04-11 13:38:33 +02:00
Christophe Romain
b1acd1183f Rename aux.erl as misc.erl
Thanks Microsoft Windows to not support some filenames
2017-04-11 12:13:58 +02:00
Badlop
1e82db5655 New muc_register_nick command (thanks to Peter Marheine)(#1407) 2017-04-10 12:23:14 +02:00
Christophe Romain
f2ca4cb3cd Merge pull request #1666 from weiss/fix-csi
Let CSI keep latest stanzas of each given full JID
2017-04-07 15:10:39 +02:00
Christophe Romain
cf784772c9 Merge pull request #1664 from weiss/fix-routing
Fix routing of groupchat and headline messages
2017-04-07 15:10:26 +02:00
Christophe Romain
0567d528c6 Let ext_mod be aware of p1_utils includes 2017-04-07 12:51:43 +02:00
Christophe Romain
36e3f4bc2a Generate ejabberd lib dir when not available in code server (#1665)
This is the case if running ejabberd from development directory
when code:lib_dir(ejabberd) returns {error, nad_name}.
2017-04-07 12:09:43 +02:00
Christophe Romain
1510ee0b3c Merge pull request #1660 from michal800106/master
Fix order of starting supervisors.
2017-04-07 10:04:38 +02:00
Evgeniy Khramtsov
3729acc5b0 Improve logging of Redis errors 2017-04-07 09:10:33 +03:00
Holger Weiss
9fa5f37f74 mod_client_state: Remove some empty lines 2017-04-06 23:00:53 +02:00
Holger Weiss
0ddd2e0ebf mod_client_state: Queue stanzas of each full JID
Keep the latest stanzas of each given full JID, rather than dropping
them when stanzas from a different resource are received.  This change
makes sure the recipient receives the latest status of all clients of
each contact.  It also ensures the recipient will see the current list
of occupants of joined MUC rooms.
2017-04-06 22:19:00 +02:00
Holger Weiss
7827faae4b mod_client_state: Don't keep track of queue size
Use maps:size/1 rather than keeping track of the size ourselves.
2017-04-06 21:01:26 +02:00
Evgeniy Khramtsov
245fe04289 Improve type specs and return values 2017-04-06 20:56:46 +03:00
Evgeniy Khramtsov
6876a37e61 Add Redis pool support
Fixes #1624
2017-04-06 17:56:37 +03:00
michal
81fe380de2 Fix order of starting supervisors.
ExtMod should be loaded before GenModSupervisor because ext_mod adds proper paths to ebin from modules (ejabberd-contrib).
Without this change you have to add -pa parameter with path to module's ebin.
2017-04-06 08:50:23 +02:00
Holger Weiss
179e8934cf ejabberd_sm: Fix routing of headline messages
As per RFC 6121, silently drop headline messages sent to the bare JID of
an offline user or to the full JID of an unavailable resource.
2017-04-05 21:03:13 +02:00
Holger Weiss
8bfb6fdd4e ejabberd_sm: Fix routing of groupchat messages
As per RFC 6121, don't (re)route groupchat messages sent to a bare JID
or to an unavailable resource.
2017-04-05 20:41:10 +02:00
Holger Weiss
89f81c89da ejabberd_sm: Fix typo in debug message 2017-04-05 20:23:28 +02:00
Evgeniy Khramtsov
ad948d33c0 Add description to feature-not-implemented error 2017-04-05 15:19:00 +03:00
Evgeniy Khramtsov
6fa55e7c38 Set 'read_concurrency' for some ETS tables 2017-04-05 15:10:18 +03:00
Evgeniy Khramtsov
2febbe5ffb Don't misuse monotonic_time/0 2017-04-05 10:42:42 +03:00
Evgeniy Khramtsov
f5b0cd1793 Don't log warning on successful ping reply 2017-04-04 17:14:24 +03:00
Evgeniy Khramtsov
3a0b4ad8da Merge branch 'master' of github.com:processone/ejabberd 2017-04-04 09:53:45 +03:00
Evgeniy Khramtsov
408f9b515e Fix c2s connection close on demand
Fixes #1652
2017-04-04 09:52:42 +03:00
Alexey Shchepin
f45dc46856 Forget prepared SQL queries on database connect (#1325) 2017-04-03 16:42:41 +03:00
Christophe Romain
b75780b9cd Always init pubsub_index when using mnesia 2017-04-03 12:13:20 +02:00
Alexey Shchepin
19614678e9 Change mnesia dir detection 2017-04-03 12:57:47 +03:00
Christophe Romain
55ea097bce Remove obsolete mnesia migration calls
Now that plugins directly use ejabberd_mnesia and can include their own
transform handler, we don't need pubsub_migrate anymore.

People upgrading from 2.1.1x version must upgrade to 17.01 first.
pubsub_migrate module remains to support any manual process requiring it
2017-04-03 11:37:07 +02:00
Evgeniy Khramtsov
9d9037856c Improve redis related code 2017-04-02 11:56:09 +03:00
Evgeniy Khramtsov
5087e9c2df Use ejabberd_sql:abort/1 instead of exit/1 2017-03-31 19:10:07 +03:00
Evgeniy Khramtsov
178a0a3e1b Merge branch 'master' of github.com:processone/ejabberd 2017-03-31 19:08:16 +03:00
Evgeniy Khramtsov
05ef009552 Add Redis as mod_proxy65 RAM backend 2017-03-31 19:07:56 +03:00
Alexey Shchepin
316da00345 Add ejabberd_sql:abort/1 and ejabberd_sql:restart/1 2017-03-31 17:37:24 +03:00
Evgeniy Khramtsov
f449df161a Add SQL as mod_proxy65 RAM backend 2017-03-31 08:16:28 +03:00
Evgeniy Khramtsov
3e4ed83cb3 Raise bad_node instead of node_down for consistency reason 2017-03-30 17:51:37 +03:00
Evgeniy Khramtsov
f5f353d90a Do not duplicate enc_pid/dec_pid functions 2017-03-30 17:44:43 +03:00
Christophe Romain
bfde473c3b Add missing jlib->aux convertion 2017-03-30 14:28:55 +02:00
Christophe Romain
c93bf732db Refactor pubsub's get_last_items 2017-03-30 14:26:30 +02:00
Evgeniy Khramtsov
7bcbea2108 Deprecate jlib.erl in favor of aux.erl
Since the main goal of jlib.erl is lost, all auxiliary functions
are now moved to aux.erl, and the whole jlib.erl is now deprecated.
2017-03-30 14:17:13 +03:00
Christophe Romain
997ac58329 Merge pull request #1646 from weiss/custom-headers
Add custom_headers option for ejabberd_http listeners
2017-03-30 12:47:42 +02:00
Evgeniy Khramtsov
085b61eea5 Add Redis as mod_carboncopy RAM backend 2017-03-30 11:45:09 +03:00
Evgeniy Khramtsov
31fd83b2ae Add SQL as mod_carboncopy RAM backend 2017-03-30 10:31:51 +03:00
Badlop
4b4c039fde oauth_list_tokens and oauth_revoke_token work only in Mnesia (#1644) 2017-03-29 12:41:27 +02:00
Evgeniy Khramtsov
0b3cf26406 Fix a typo 2017-03-29 13:20:15 +03:00
Evgeniy Khramtsov
12e01a5119 Add SQL as mod_muc RAM backend 2017-03-29 12:58:01 +03:00
Evgeniy Khramtsov
ba6c88cb90 Add Redis as mod_bosh RAM backend 2017-03-28 21:12:26 +03:00
Evgeniy Khramtsov
e5815553cb Add SQL as mod_bosh RAM backend 2017-03-28 20:33:57 +03:00
Evgeniy Khramtsov
cba6e1b3ab Add Redis as router RAM backend 2017-03-28 19:34:04 +03:00
Evgeniy Khramtsov
117f31125d Add SQL as router RAM backend 2017-03-28 16:31:37 +03:00
Holger Weiss
510fde58d8 mod_http_upload: Don't add "Server" header line
Administrators can add the "Server" header line using the new listener
option "custom_headers", if desired.
2017-03-28 00:03:17 +02:00
Holger Weiss
191fc1b4e8 ejabberd_http: Expand @VERSION@ in custom headers
Let ejabberd_http expand the @VERSION@ keyword to the ejabberd version
if specified in the "custom_headers" listener option.

Closes #1414.
2017-03-27 23:52:49 +02:00
Holger Weiss
41de5e78d0 ejabberd_http: Add "custom_headers" option
If the new listener option "custom_headers" is specified, include those
headers with the HTTP(S) response.

Closes #517.
2017-03-27 23:19:11 +02:00
Christophe Romain
5b6d042de2 Fix PEP issues (#1636) 2017-03-27 16:24:24 +02:00
Evgeniy Khramtsov
e30d41e5f0 Merge branch 'new_queue'
Conflicts:
	rebar.config
	src/mod_muc_admin.erl
2017-03-24 13:27:56 +03:00
Evgeniy Khramtsov
e1f01f0c8a Avoid PID collisions
Fixes #1470
2017-03-24 11:03:23 +03:00
Holger Weiss
e469b6ffb4 prosody2ejabberd: Fix offline message record type
mod_offline now expects a #message{} rather than an #xmlel{} record.
2017-03-21 18:35:07 +01:00
Holger Weiss
a1068df602 prosody2ejabberd: Fix message attribute removal
Actually remove the 'stamp' and 'stamp_legacy' attributes from imported
offline messages as intended.
2017-03-21 18:23:55 +01:00
Paweł Chmielowski
f819272b88 Fix crash in mod_muc_admin, we operate on integers here not lists 2017-03-21 15:36:42 +01:00
Alexey Shchepin
9fb188afbc Don't block contacts with subscription=to in mod_block_strangers (#1609) 2017-03-21 15:42:38 +03:00
Christophe Romain
70050b52ad Use item creation date in rsm order (#1516) 2017-03-21 12:45:41 +01:00
Evgeny Khramtsov
44484fa4ae Merge pull request #1626 from weiss/fix-scram-import
prosody2ejabberd: Fix SCRAM hash conversion
2017-03-21 15:44:29 +04:00
Evgeniy Khramtsov
f3ecba0445 Use new xdata compiler API 2017-03-20 09:57:11 +03:00
Evgeniy Khramtsov
06f42bc749 Better log s2s auth failures when TLS is not available 2017-03-18 13:59:24 +03:00
Evgeniy Khramtsov
72da5bd062 Log startup time 2017-03-18 10:24:42 +03:00
Edward Chow
c5af421cee Fixed wrong parameter values in mod_muc_admin
Corrected wrong parameter values passing to register_online_room(Room, Host, Pid) of mod_muc
2017-03-18 03:07:23 +08:00
Evgeniy Khramtsov
91245141e9 Set translation callback on startup 2017-03-17 21:35:02 +03:00
Paweł Chmielowski
2d67ff2249 Teach mod_http_fileserver ability to send 304 Not Modified 2017-03-17 11:58:40 +01:00
Holger Weiss
0ef6973457 prosody2ejabberd: Fix SCRAM hash conversion
Closes #1549.
2017-03-16 23:15:08 +01:00
Badlop
1aeaa794e1 Encode in base64 when getting scram data with import_prosody (#1549) 2017-03-15 11:42:26 +01:00
Evgeniy Khramtsov
b932afb0cd Use correct pid when registering local route
This fixes #1600
2017-03-15 10:27:22 +03:00
Alexey Shchepin
9a142eb807 Update cyrsasl_oauth to internal API changes 2017-03-14 17:25:09 +03:00
Alexey Shchepin
069d28b1ed Get rid of p1_sha calls 2017-03-14 02:31:51 +03:00
Paweł Chmielowski
301b1b7a7a Fix handling of xmlrpc request without authentication structure
This is problem from issue #1602
2017-03-13 16:41:52 +01:00
Badlop
113ed66f49 In module_install copy also deps/ebin and priv files (ejabberd-contrib#200) 2017-03-13 11:26:58 +01:00
Evgeniy Khramtsov
071c1dcb64 Return 'closed' instead of 'einval' on closed sockets 2017-03-12 08:55:54 +03:00
Evgeniy Khramtsov
4b1bdb563e Improve overloaded S2S queue processing 2017-03-10 20:21:04 +03:00
Paweł Chmielowski
0822108fc8 Teach web admin about ip acl rules 2017-03-10 14:39:47 +01:00
Evgeniy Khramtsov
02064ae12a Add support for file-based queues
It's now possible to use files as internal packet queues.
The following options are introduced:

* queue_type: the option can be set to `ram` (default) or `file`.
  The option can be set per virtual host.
* queue_dir: path to the directory where queues will be allocated.
  The default is 'queue' directory inside Mnesia directory.
  This is a global option and cannot be set per virtual host.
2017-03-10 15:12:43 +03:00
Paweł Chmielowski
782caaa678 Improve formatting of erlang terms shown in web admin 2017-03-10 10:33:16 +01:00
Badlop
ee849338dd Include shared groups also when contact is is personal roster (#1585) 2017-03-09 19:21:45 +01:00
Badlop
7e2380ab0c Remove mod_pubsub from ejd2sql export, as it isn't implemented (#1584) 2017-03-08 16:23:01 +01:00
Badlop
b0a950b6dd Fix handling ejabberd_sql:sql_transaction result (#1584) 2017-03-08 16:22:13 +01:00
Evgeniy Khramtsov
dd11ed82d7 Report more TLS errors 2017-03-08 08:27:54 +03:00
Evgeniy Khramtsov
bdc278399d Fix typo and spec 2017-03-07 22:21:44 +03:00
Evgeniy Khramtsov
b71c4c0e52 Remove forgotten compile_all 2017-03-07 21:40:39 +03:00
Evgeniy Khramtsov
d0a185f2d9 Report some TLS errors 2017-03-07 18:46:02 +03:00
Evgeniy Khramtsov
8b29af629b Best Practices for Use of SASL EXTERNAL with Certificates (XEP-0178) support
It is now possible for client connections to login using PKIX certificates.
This is disabled by default, to enable it:

- either set 'tls_verify: true' and 'cafile: /path/to/CAfile'
  in the corresponding listener's section
- or set equivalent per-vhost options 'c2s_tls_verify' and 'c2s_cafile'
2017-03-07 14:20:50 +03:00
Evgeniy Khramtsov
e5aac80cb4 Better handle errors in ejabberd_receiver calls 2017-03-02 16:02:44 +03:00
Evgeniy Khramtsov
4e014b4c5c Fix previous commit 2017-03-02 15:34:26 +03:00
Evgeniy Khramtsov
cebdb87387 Revert "Remove relict mod_service_log"
This reverts commit 0d4e1abbd1.
However, stanzas are now encapsulated into forwarded element
(as per XEP-0297) instead of <route/> nonza.
2017-03-02 15:30:34 +03:00
Evgeniy Khramtsov
8e41bdc25e Improve reporting of unavailable SASL mechanisms 2017-03-01 15:23:22 +03:00
Evgeniy Khramtsov
28f4131d50 Resolve all addresses from SRV lookup 2017-03-01 14:37:35 +03:00
Evgeniy Khramtsov
f6e2840947 External components must always provide 'to' attribute 2017-03-01 00:17:27 +03:00
Evgeniy Khramtsov
c3ef56702a Add s2s work-around for gmail.com 2017-02-28 20:15:05 +03:00
Evgeniy Khramtsov
489385d565 Make sure all hooks are called with proper host in ejabberd_c2s 2017-02-28 16:47:31 +03:00
Paweł Chmielowski
ce3317da7a Fix bug in api_permission parsing 2017-02-28 13:36:34 +01:00
Jerome Sautret
d6a9ef5bc1 Propagate the TRANSACTION_TIMEOUT to pgsql driver (EJAB-1266) 2017-02-28 12:19:07 +01:00
Evgeniy Khramtsov
ac74b7dca1 Don't crash on malformed IP addresses 2017-02-28 13:11:49 +03:00
Evgeniy Khramtsov
d81b07bd5f Improve logging of outbound s2s auth failures 2017-02-28 12:13:35 +03:00
Evgeniy Khramtsov
95a8f58314 Improve logging of dialback failures 2017-02-28 10:13:09 +03:00
Evgeniy Khramtsov
f3594ec881 Resend stream header before calling handle_auth_success/2 callback 2017-02-28 10:12:11 +03:00
Paweł Chmielowski
7a186e242d Fix compilation on R17 2017-02-27 20:38:59 +01:00
Paweł Chmielowski
b2e16ffb12 Fix parsing of acl/access rules inside oauth sections of api_permissions
This should fix problem reported in #1568
2017-02-27 20:23:37 +01:00
Evgeniy Khramtsov
719b4d1183 Don't perform useless resourceprep 2017-02-27 13:58:57 +03:00
Paweł Chmielowski
6808865068 Return ok from start/2 2017-02-27 10:05:35 +01:00
Evgeniy Khramtsov
7a9fa52e91 Change loglevel on configuration reload 2017-02-27 11:11:29 +03:00
Evgeniy Khramtsov
d523357ba8 Invalidate access permissions on configuration reload 2017-02-27 09:55:54 +03:00
Evgeniy Khramtsov
933351ab4c Fix log message format 2017-02-26 16:27:26 +03:00
Evgeniy Khramtsov
fadcc85553 Put more stuff under supervision 2017-02-26 15:10:59 +03:00
Evgeniy Khramtsov
7decd58aaa Don't fail on elements decoding 2017-02-26 11:53:41 +03:00
Evgeniy Khramtsov
c1439ddd5b Get rid of jid:to_string/1 and jid:from_string/1 2017-02-26 10:07:12 +03:00
Evgeniy Khramtsov
603ec9cb19 Don't pass empty resource to jid:make() 2017-02-25 10:01:01 +03:00
Evgeniy Khramtsov
485aae8134 Don't pass 'from' and 'to' along with stanza in hooks' arguments 2017-02-24 21:25:25 +03:00
Evgeniy Khramtsov
039ac46963 Don't polute log with known content types 2017-02-24 20:57:24 +03:00
Evgeniy Khramtsov
4892b01eb4 Get rid of unused variable warning 2017-02-24 17:48:17 +03:00
Evgeniy Khramtsov
03e2b0f0bf Remove previous options when the config gets reloaded 2017-02-24 17:03:11 +03:00
Evgeniy Khramtsov
0124d292b5 Add gen_mod:is_loaded_elsewhere/2 2017-02-24 16:31:39 +03:00
Evgeniy Khramtsov
b8fbac72ac Restart listeners on configuration reload 2017-02-24 15:18:10 +03:00
Paweł Chmielowski
e8c0e21f71 We don't like now() 2017-02-24 12:08:57 +01:00
Evgeniy Khramtsov
0db99ccb4b Improve config reloading support by ejabberd_auth 2017-02-24 14:06:47 +03:00
Paweł Chmielowski
6aab450c16 Make sure that addr_re is always initialized when creating http state 2017-02-24 11:30:36 +01:00
Evgeniy Khramtsov
c15d230a57 Return ejabberd_sm:stop/0 back 2017-02-24 12:39:44 +03:00
Paweł Chmielowski
f310d7bb12 Make host header parser work correctly with ipv6 literal addresses 2017-02-24 10:25:26 +01:00
Evgeniy Khramtsov
67d6ca9f10 Improve startup procedure 2017-02-24 12:05:47 +03:00
Evgeniy Khramtsov
5b112c86bf Fix a case clause and run c2s_filter_send on send_error/3 2017-02-24 07:57:57 +03:00
Badlop
57181c0a76 get_last now always returns tuple with UTC XEP-0082 and status (#1565) 2017-02-23 23:27:57 +01:00
Badlop
6314a96b05 Protect users from delete_old_users command using a fixed access rule (#1462) 2017-02-23 19:38:17 +01:00
Badlop
4294ba6b52 Separate list of strings with \n for srg_get_info in mod_http_api (#1500) 2017-02-23 19:23:24 +01:00
Evgeny Khramtsov
33e82de475 Merge pull request #1499 from weiss/offline-stanza-id
Include stanza ID with archived offline messages
2017-02-23 20:36:05 +04:00
Holger Weiss
b475df2250 Include stanza ID with archived offline messages
Fixes #1480.
2017-02-23 16:55:35 +01:00
Christophe Romain
720741b725 Avoid orphan_item leak on affiliation/subscription removal (#1563) 2017-02-23 16:43:22 +01:00
Evgeniy Khramtsov
6cdead166b Start/stop auth modules when host is added/deleted 2017-02-23 16:19:22 +03:00
Evgeniy Khramtsov
0542c65a07 Stop all s2s connections via supervisor calls 2017-02-23 16:18:29 +03:00
Evgeniy Khramtsov
a3ea6e7723 Improve reload_config admin command 2017-02-23 11:14:49 +03:00
Evgeniy Khramtsov
7d68112265 Start/stop virtual hosts when reloading configuration file 2017-02-23 10:12:19 +03:00
Evgeniy Khramtsov
ed34b04e9b Remove unused macro 2017-02-22 20:48:51 +03:00
Evgeniy Khramtsov
96a690f607 Merge branch 'master' of github.com:processone/ejabberd 2017-02-22 19:47:00 +03:00
Evgeniy Khramtsov
3c4057ff55 Reload modules when reloading configuration file 2017-02-22 19:46:47 +03:00
Evgeniy Khramtsov
ff67860cdb Make sure all hooks are called with proper host 2017-02-22 19:45:12 +03:00
Christophe Romain
87b5e2500b Fix match of itemid on get_cached_item, fixes 14e771d8 2017-02-22 17:44:47 +01:00
Evgeniy Khramtsov
6ffd5ffd0c Test stream management queue overload 2017-02-21 12:38:03 +03:00
Evgeniy Khramtsov
adbd174959 Rename mod_sm -> mod_stream_mgmt 2017-02-21 09:18:58 +03:00
Evgeniy Khramtsov
bbfd089b7e Don't count resent stanzas
Thanks to Holger Weiß for an advise
2017-02-21 08:44:39 +03:00
Holger Weiss
61cdee97fc ejabberd_c2s: Don't drop 'user_send_packet' result
When handling a <session/> IQ, use the stanza returned by the
'user_send_packet' hook.

Thanks to Evgeniy for spotting this.
2017-02-20 13:07:34 +01:00
Badlop
7d767fac7f Support scrammed passwords in ejabberdctl import_prosody (#1549) 2017-02-20 12:47:56 +01:00
Evgeniy Khramtsov
9426c67302 Fix s2s_dns_timeout issues 2017-02-20 10:42:16 +03:00
Holger Weiss
7c159e3881 Let ejabberd_c2s handle <session/> IQ
This fixes the counting of incoming stanzas for stream management.
2017-02-19 22:43:10 +01:00
Evgeniy Khramtsov
70bfc5b4a8 Get rid of non-breaking space 2017-02-18 12:13:48 +03:00
Evgeniy Khramtsov
940ca9311d Fix some dialyzer warnings 2017-02-18 09:36:27 +03:00
Peter Lemenkov
1a2dd3680f Mark local/global config functions as deprecated
See discussion in PR #1548.

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2017-02-17 19:20:44 +03:00
Badlop
a1e8d3c3dc Commands documentation lack arguments when policy=user (#1514) 2017-02-17 12:37:42 +01:00
Peter Lemenkov
009a5007ff Use ejabberd_config:add_option/2 instead of ejabberd_config:add_local_option/2
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2017-02-16 20:47:47 +03:00
Peter Lemenkov
cb30f7733d Use ejabberd_config:get_option/2 instead of ejabberd_config:get_local_option/2
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2017-02-16 20:41:57 +03:00
Paweł Chmielowski
eec63dbefe Correct access_matches spec 2017-02-16 15:38:44 +01:00
Evgeniy Khramtsov
218eeae797 Fix some dialyzer warnings 2017-02-16 14:18:36 +03:00
Evgeniy Khramtsov
8b2d308498 Change routing API
Now 'From' and 'To' arguments must be omitted in functions
and structures related to routing.
The commit deprecates the following functions:
     ejabberd_router:route/3 in favor of ejabberd_router:route/1
     ejabberd_router:route_error/4 in favor of ejabberd_router:route_error/2
     ejabberd_local:route_iq/4 in favor of ejabberd_local:route_iq/2
     ejabberd_local:route_iq/5 in favor of ejabberd_local:route_iq/3
The format of {route, From, To, Packet} is changed in favor of {route, Packet}
2017-02-16 11:10:24 +03:00
Evgeniy Khramtsov
0d4e1abbd1 Remove relict mod_service_log 2017-02-16 00:22:48 +03:00
Evgeniy Khramtsov
f2b5153a8c Report password change in the log 2017-02-14 17:10:16 +03:00
Evgeniy Khramtsov
6fd89f5fe0 Attach IP metadata to every stanza received from stream 2017-02-14 17:09:25 +03:00
Evgeniy Khramtsov
f61c933a7a Only use GEN_SERVER macro where appropriate 2017-02-14 15:39:57 +03:00
Evgeniy Khramtsov
28f66ddd7c Attach modules to gen_mod's supervisor 2017-02-14 12:39:26 +03:00
Evgeny Khramtsov
a1e45ab56c Merge pull request #1539 from lemenkov/use_crypto_sha
RFE: Use crypto:hash/2 function
2017-02-14 11:38:05 +04:00
Evgeniy Khramtsov
f664e39374 Improve modules start/stop procedures 2017-02-14 10:25:08 +03:00
Peter Lemenkov
e7733ce7d9 Use crypto:hash/2 function
Use crypto:hash/2 function instead of ones from p1_sha.

This function exists since commit
erlang/otp@208f9ad382 and also implemented
as NIF, so I believe it's safe to use it.

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2017-02-13 18:42:50 +03:00
Evgeniy Khramtsov
e1ba499bd6 Check result of gen_mod:start/2 callback (#1534) 2017-02-13 11:11:41 +03:00
Evgeniy Khramtsov
fd885d0818 Apply SASLprep before storing/converting passwords
Fixes #996 and #1295
2017-02-12 10:06:30 +03:00
Evgeniy Khramtsov
67c9de6461 Use p1_server behaviour in xmpp_stream layer 2017-02-08 17:16:18 +03:00
Paweł Chmielowski
ca0dd09944 Accept "add_commands: admin" in commands section not only "add_commands: - admin"
This fixes issue reported in #1518, and restores compatibility with
what older version were accepting and what is documented.
2017-02-06 21:40:37 +01:00
Paweł Chmielowski
b703b4f022 Don't shadow binding in match 2017-02-06 11:38:51 +01:00
Evgeniy Khramtsov
f30c9d49f7 Add TLS support for external components 2017-02-06 13:30:58 +03:00
Paweł Chmielowski
af5457ba09 Make sure that api_permissions always have "console commands" section
If user didn't override it in config file, default version which allows
executing all commands will be added
2017-02-03 15:22:35 +01:00
Badlop
a31154c035 Set subscribers nicks when recreating room (thanks to Girdhar Sojitra)(#1495) 2017-01-31 19:18:39 +01:00
Badlop
b2a2e0f135 Support non-JID lines in command create_rooms_file 2017-01-31 17:50:04 +01:00
Christophe Romain
589bc73838 Don't warn if custom schema is not available 2017-01-31 09:53:52 +01:00
Evgeny Khramtsov
649d3b753b Merge pull request #1502 from lemenkov/ignore_output_val
No need to explicitly return ok here
2017-01-30 18:15:25 +04:00
Peter Lemenkov
c377708da1 No need to explicitly return ok here
No need to explicitly return ok here. Return value will be ignored
anyway.

Signed-off-by: Peter Lemenkov <lemenkov@redhat.com>
2017-01-30 14:52:04 +01:00
Paweł Chmielowski
44a9ceac0b More changes that are required from p1_pam -> epam 2017-01-29 14:35:22 +01:00
Evgeniy Khramtsov
9d144bd495 Do not drop default TLS options
Fixes #1484
2017-01-26 10:58:26 +03:00
Evgeniy Khramtsov
99fd621aed Speedup features list when a lot of virtual hosts configured 2017-01-24 10:38:29 +03:00
Evgeniy Khramtsov
0c57044c59 Make mod_disco handle features of mod_ping 2017-01-23 22:33:46 +03:00
Evgeniy Khramtsov
0ce3a3665a Make sure only {exit, normal} is not catched when executing a hook 2017-01-23 21:52:25 +03:00
Alexey Shchepin
8b5e6e4a13 Compatibility with R17 in mod_block_strangers 2017-01-23 19:04:22 +03:00
Alexey Shchepin
43bfa0efbc Check message subject in mod_block_strangers 2017-01-23 17:10:28 +03:00
Evgeniy Khramtsov
48d8498dbb Avoid using maps:get/2 to keep compatibility with OTP 17.5 2017-01-23 16:30:16 +03:00
Evgeniy Khramtsov
19bec62eb5 Fix calling to mod_offline:store_packet 2017-01-23 15:00:46 +03:00
Paweł Chmielowski
5e5a8bbdcf Don't use maps:take it available in R19 only 2017-01-23 12:56:08 +01:00
Evgeniy Khramtsov
435e5e6263 Make test suite working again 2017-01-23 13:51:05 +03:00
Evgeniy Khramtsov
e564f9ae31 Make a message is not bounced if it's archived 2017-01-21 13:47:47 +03:00
Evgeniy Khramtsov
68cf45a8b9 Archive message before delivering it to offline storage (#1348) 2017-01-21 11:47:04 +03:00
Evgeniy Khramtsov
94b23482a9 Send <compressed/> in correct order 2017-01-21 10:47:55 +03:00
Holger Weiss
14e771d871 mod_pubsub: Fix last item cache for multiple hosts
Don't let the last item cache intermix PubSub items of different virtual
domains.
2017-01-21 00:14:56 +01:00
Evgeniy Khramtsov
56ef607904 Add stanza-id to every archived message (#1477) 2017-01-20 23:21:06 +03:00
Evgeniy Khramtsov
17fe272dc5 Update copyright headers in new files 2017-01-20 19:56:19 +03:00
Evgeniy Khramtsov
d5d906184f Merge branch 'new_stream'
Conflicts:
	src/cyrsasl.erl
	src/ejabberd_c2s.erl
	src/ejabberd_cluster.erl
	src/ejabberd_frontend_socket.erl
	src/ejabberd_node_groups.erl
	src/ejabberd_router.erl
	src/mod_bosh.erl
	src/mod_ip_blacklist.erl
	src/mod_muc_mnesia.erl
	src/mod_offline.erl
	src/mod_proxy65_sm.erl
2017-01-20 19:35:46 +03:00
Paweł Chmielowski
1f02567507 Make shim for mod_http_api admin_ip_access more robust 2017-01-20 10:19:09 +01:00
Christophe Romain
4f5d54f062 Try db migration only when mnesia is configured (#1458) 2017-01-20 09:26:13 +01:00
Evgeniy Khramtsov
fc2b71a04e Restore muc_invite_hook (#1467) 2017-01-19 18:24:29 +03:00
Evgeniy Khramtsov
87b964a7f6 Make sure 'jabber:client' namespace is added to forwarded messages (#1474) 2017-01-19 18:03:07 +03:00
Evgeniy Khramtsov
4cf83ca3a7 Restore multiple invitations support (#1468) 2017-01-19 17:26:08 +03:00
Evgeniy Khramtsov
3d9997288d Don't forget to convert muc#roomconfig_mam 2017-01-19 16:42:04 +03:00
Evgeniy Khramtsov
527472f18c Support legacy muc#roomconfig values (#1469) 2017-01-19 11:12:27 +03:00
Christophe Romain
d2b8569452 Fix typo 2017-01-18 17:11:08 +01:00
Christophe Romain
3482ee5c75 Reset table only if new def change from runtime 2017-01-18 17:02:03 +01:00
Christophe Romain
3029e84faf Improve check of mnesia schema opearations 2017-01-18 16:53:36 +01:00
Evgeniy Khramtsov
044e55b98e Fix reporting dialback failures 2017-01-18 18:26:31 +03:00
Evgeniy Khramtsov
60a09285b7 Don't attempt to resolve _jabber._tcp SRV record 2017-01-18 17:54:42 +03:00
Evgeniy Khramtsov
ba47fd4649 Improve <delay/> tag insertion 2017-01-18 14:09:39 +03:00
Evgeniy Khramtsov
2de2d00f14 Cope with malformed values in 'rosterusers' SQL table (#1466) 2017-01-18 11:59:46 +03:00
Evgeniy Khramtsov
7b8c01da12 Better log bytestream termination 2017-01-17 23:06:55 +03:00
Evgeniy Khramtsov
9021ba01ac Use crypto:exor/2 instead of hand-crafted bxor 2017-01-17 22:37:44 +03:00
Evgeniy Khramtsov
b8db0a8ed6 Reset XML stream before sending SASL <success/> 2017-01-17 22:06:26 +03:00
Christophe Romain
2a68591181 Remove wrong index setting 2017-01-17 16:23:45 +01:00
Christophe Romain
94ac777f93 Let ejabberd_mnesia handles copy_type 2017-01-17 15:05:14 +01:00
Christophe Romain
0ea6c1dcf6 Fix index processing (#1461) 2017-01-17 14:53:41 +01:00
Christophe Romain
2ce6d49a40 Speedup table setup, no io if EJABBERD_SCHEMA_PATH not set (#1461) 2017-01-17 14:22:12 +01:00
Evgeniy Khramtsov
c7476875e6 Avoid stopping mod_offline before supervisor termination (#1464) 2017-01-17 14:31:00 +03:00
Evgeniy Khramtsov
22ee16fd9d Get rid of ejabberd_frontend_socket 2017-01-17 14:00:01 +03:00
Evgeniy Khramtsov
c68ac1d5eb Improve error reporting for forbidden servers 2017-01-17 13:38:05 +03:00
Alexey Shchepin
a23c76fb82 Drop only messages with <body/> in mod_block_strangers 2017-01-17 01:34:40 +03:00
Alexey Shchepin
fd4f5c0996 Stop hook on message drop in mod_block_strangers 2017-01-16 18:45:26 +03:00
Alexey Shchepin
b080b8f54d Use user_receive_packet hook in mod_block_strangers 2017-01-16 18:40:30 +03:00
Alexey Shchepin
5a8dea1591 Remove stub in mob_block_strangers 2017-01-16 18:21:36 +03:00
Alexey Shchepin
fedfe5427c Add mod_block_strangers 2017-01-16 18:14:14 +03:00
Evgeniy Khramtsov
22c25e4413 Don't allow raw elements in process_iq/3 2017-01-16 16:40:11 +03:00
Evgeniy Khramtsov
557820707b Implement database backend interface for mod_proxy65 2017-01-16 15:28:11 +03:00
Evgeniy Khramtsov
0078a3b904 Correctly set gen_server's name 2017-01-16 11:43:35 +03:00
Evgeniy Khramtsov
65d352d5de Remove handle_event/1 callback 2017-01-16 11:34:49 +03:00
Paweł Chmielowski
ce42b6be01 Add example api_permisions: definition to config template
Also expand default config to have rule for admin oauth
2017-01-13 16:53:48 +01:00
Evgeniy Khramtsov
7606be93d5 Decode message before checking for expiration (#1458) 2017-01-13 14:20:25 +03:00
Badlop
e2665c5da9 Usable size for Shared rosters members textarea (EJAB-1753) 2017-01-13 12:16:23 +01:00
Evgeniy Khramtsov
32d548d99b Fix configuration commands (#1432) 2017-01-13 13:36:28 +03:00
Evgeniy Khramtsov
25ddb6c69d Add forgotten -include_lib() 2017-01-13 13:28:55 +03:00
Evgeniy Khramtsov
0baaad30b1 Implement database backend interface for MUC, BOSH and auth_anonyous 2017-01-13 12:03:39 +03:00
Evgeniy Khramtsov
31491ebe16 Fix some corner cases while re-reading RFC6120 2017-01-13 11:35:47 +03:00
Evgeniy Khramtsov
b10e10efae Ignore unexpected events 2017-01-11 16:50:11 +03:00
Evgeniy Khramtsov
02f96d0f41 Implement database backend interface for ejabberd_router 2017-01-11 16:25:43 +03:00
Evgeniy Khramtsov
2129a33077 Fix attaching ejabberd_s2s_out process to a supervisor 2017-01-11 11:09:56 +03:00
Evgeniy Khramtsov
5cfe57ece5 Add 'supervisor' listening option
If set to 'true' (this is the default), new processes spawned by
ejabberd_listener will be attached to the corresponding supervisor.
No such processes will be attached to a supervisor otherwise.
Setting this to 'false' will improve performance of high loaded
systems where new C2S/S2S processes are spawned very rapidly.
2017-01-11 10:56:04 +03:00
Evgeniy Khramtsov
03667d0c73 Add SSL support for SQL connections
Currently only PostgreSQL is supported.
This requires p1_pgsql-1.1.2 and higher.
2017-01-10 17:40:38 +03:00
Christophe Romain
efccee55e3 pubsub_subscription may is not used (migration is optional) 2017-01-10 13:53:23 +01:00
Christophe Romain
6ff81946cf Fix migration of old pubsub database (#1409) 2017-01-10 12:10:11 +01:00
Evgeniy Khramtsov
08d482b064 Allow old-stype mod_vcard_ldap in the config (#1410) 2017-01-10 11:29:01 +03:00
Evgeniy Khramtsov
dd5389df23 Don't forget to advertise disco features 2017-01-10 11:25:12 +03:00
Evgeniy Khramtsov
e01bece552 Make stream related calls module independent 2017-01-09 22:03:42 +03:00
Badlop
3d0d9cb354 Fix typo in previous commit 2017-01-09 17:54:10 +01:00
Badlop
afc7f5aa37 Simplify setting allow_subscription (#1404) 2017-01-09 15:56:25 +01:00
Evgeniy Khramtsov
f14a966680 Set from/to in every routed packet 2017-01-09 17:51:08 +03:00
Evgeniy Khramtsov
6c564775c4 Remove unused mod_ip_blacklist module 2017-01-09 17:22:31 +03:00
Evgeniy Khramtsov
1e55e018e5 Adopt remaining code to support new hooks 2017-01-09 17:02:17 +03:00
Badlop
9605e2b2a4 Fix problem with get_vcard command (#1447) 2017-01-06 16:13:57 +01:00
Christophe Romain
a910ab8171 Get nodes from ejabberd_cluster instead of mnesia 2017-01-03 17:21:02 +01:00
Christophe Romain
32e5781a6a Cleanup file headers 2017-01-03 15:58:52 +01:00
Badlop
f5290a8e44 Specify that process_rosteritems command works only with Mnesia storage 2017-01-03 01:38:56 +01:00
Badlop
5fdd1c39fe Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
Paweł Chmielowski
769975f6d7 Remove mod_http_bind and migration code to mod_bosh 2017-01-02 15:53:25 +01:00
Evgeniy Khramtsov
5ef60bf594 Correctly process errors from new cyrsasl API 2017-01-02 15:02:03 +03:00
Evgeniy Khramtsov
666608544b Improve return values in cyrsasl API 2017-01-02 14:55:06 +03:00
Evgeniy Khramtsov
3dd2a614ac Get rid of "jlib.hrl" header in some files 2017-01-02 14:45:52 +03:00
Evgeniy Khramtsov
50682b98d6 Better cope with IPv6 domains 2016-12-31 17:43:40 +03:00
Evgeniy Khramtsov
cf87c5664f Reflect cyrsasl API changes in remaining code 2016-12-31 13:48:55 +03:00
Evgeniy Khramtsov
247ca872f6 Improve return values in cyrsasl API 2016-12-31 13:47:35 +03:00
Evgeniy Khramtsov
e7fe4dc474 More refactoring on session management 2016-12-30 00:00:36 +03:00
Badlop
c6b5dd6c4f Fix case clauses when using compression (#1431)(thanks to Evgeniy Khramtsov) 2016-12-29 15:18:42 +01:00
Evgeniy Khramtsov
309bdfbe28 Add xmpp_stream_out behaviour and rewrite s2s/SM code 2016-12-28 09:47:11 +03:00
Christophe Romain
ed679279fd Cleanup file headers 2016-12-27 10:57:50 +01:00
Badlop
fad7612cf1 Allow subscriber to create room, then set allow_subscription=true (#1404) 2016-12-26 21:16:17 +01:00
Holger Weiss
df92d96d4f Revert "Fix 'nodetree' configuration lookups for PEP"
This reverts commit 7ef8dfb4e0.

The config/3 function copes with the PEP case.
2016-12-25 01:24:40 +01:00
Holger Weiss
7ef8dfb4e0 Fix 'nodetree' configuration lookups for PEP 2016-12-25 00:58:20 +01:00
Badlop
3811a61573 Extract correctly the text from #stanza_error (#1425) 2016-12-17 11:46:16 +01:00
Badlop
cc14e223c6 Describe command arguments and results in ejabberd_admin 2016-12-12 13:19:17 +01:00
Evgeniy Khramtsov
7f653cfe76 Rewrite ejabberd_service to use new XMPP stream API 2016-12-11 18:24:51 +03:00
Evgeniy Khramtsov
5cc8e807df Initial version of new XMPP stream behaviour (for review) 2016-12-11 15:03:37 +03:00
Badlop
1a4f63f058 Copy recent make_opts function from mod_muc_room.erl 2016-12-09 13:07:48 +01:00
Christophe Romain
bcc04d93e1 Enforce pubsub node removal, revert previous commit (#1320)
This reverts commit 2976c2d921.
and enforce node purge/removal instead
2016-12-09 12:51:08 +01:00
Christophe Romain
2976c2d921 Enforce affiliation removal, remove corresponding items (#1320) 2016-12-09 11:35:51 +01:00
Paweł Chmielowski
a50247c20d Improve handling on acl rules in api_permissions 2016-12-08 18:08:54 +01:00
Mickael Remond
fdf69dcd0d
API call does not necessary use token, it could use basic auth 2016-12-08 16:28:47 +01:00
Paweł Chmielowski
a3b12fd745 Recognize "- who:" not only "who:" syntax in api_permissions 2016-12-08 12:01:24 +01:00
Christophe Romain
8a7ea85a7e Cleanup ext_mod and fix compilation path 2016-12-07 09:27:21 +01:00
Christophe Romain
1883a98d1c Fix compilation of external module with new xmpp lib 2016-12-06 12:01:04 +01:00
Christophe Romain
0c2491d9ea Remove obsolete remove_node api (use leave_cluster) 2016-12-05 14:17:57 +01:00
Christophe Romain
23f7075313 Fix reload_config 2016-12-02 16:29:46 +01:00
Badlop
847376924e Add password support in muc_subscribe (#1306) 2016-12-02 16:18:35 +01:00
Badlop
d7e1f6d7b3 When unsubscribes, check if room should get closed (#1396) 2016-12-01 22:09:57 +01:00
Badlop
34f2a8a4f2 Fix error formatting, which closed client connection (#1389) 2016-12-01 21:02:54 +01:00
Mickael Remond
309fd56fb4
Merge branch 'master' of github.com:processone/ejabberd 2016-12-01 15:05:09 +01:00
Christophe Romain
32f484a349 Fix typo introduced by 92db9ff changes 2016-11-30 13:50:46 +01:00
Christophe Romain
92db9ff105 Improve handling of mnesia schema 2016-11-30 11:09:17 +01:00
Christophe Romain
95a4b1b266 Cleanup admin_extra, add few functions 2016-11-30 10:31:36 +01:00
Christophe Romain
fc7e52df71 Adds optional post_install and pre_uninstall hooks (thanks Igor Manturov Jr.)(#1300) 2016-11-28 17:15:57 +01:00
Evgeniy Khramtsov
56b30ab598 Improve translation of some messages 2016-11-26 10:05:22 +03:00
Evgeniy Khramtsov
ca1b22bdd4 Use ejabberd_router:route_error/4 wherever possible 2016-11-25 11:41:24 +03:00
Evgeniy Khramtsov
e1539e5769 Get rid of compile warnings 2016-11-25 09:48:26 +03:00
Evgeniy Khramtsov
0f11b1be36 Don't forget to erase cache on user removal 2016-11-24 18:40:20 +03:00
Evgeniy Khramtsov
49f1275e20 Get rid of excessive (io)list_to_binary/1 calls 2016-11-24 15:06:06 +03:00
Paweł Chmielowski
b14843d098 Add missing -callbacks 2016-11-24 12:44:21 +01:00
Evgeny Khramtsov
8f692f51d8 Merge pull request #1391 from weiss/mark-copies
Mark messages as copies by attaching metadata
2016-11-24 15:43:38 +04:00
Holger Weiss
560038c808 Use xmpp:put_meta/3 to update metadata 2016-11-24 10:47:26 +01:00
Christophe Romain
12683b4aaf Fix typo in copyright date 2016-11-23 14:36:11 +01:00
Evgeniy Khramtsov
5d434c1aea Move copyright definition to ejabberd.hrl 2016-11-23 15:51:48 +03:00
Evgeniy Khramtsov
6f2f1e87c9 Don't use deprecated functions from jlib.erl 2016-11-23 10:41:26 +03:00
Holger Weiss
3325e69ae6 Let mod_carboncopy mark copied messages
Carbon copies are now marked with a 'carbon_copy' flag.  This makes it
easier to identify them.
2016-11-22 22:21:34 +01:00
Holger Weiss
114ca786ee Let ejabberd_sm mark copied messages
When multiple resources have the same (highest) priority, ejabberd_sm
dispatches messages addressed to the bare JID (or to an unavailable
resource) to each of these resources.  Such messages are now marked with
an 'sm_copy' flag for all but one of the resources.  This makes it
easier for other modules to identify those duplicates.

Resolves #1356.
2016-11-22 19:25:20 +01:00
Christophe Romain
ee8cc1dac2 Fix xref issue injected by fbfbb96 2016-11-22 17:51:21 +01:00
Christophe Romain
9ab169bc63 Fix get_roster issue injected by fbfbb96 2016-11-22 16:59:02 +01:00
Christophe Romain
24ef90c556 Fix vcard_ldap exports 2016-11-22 16:23:02 +01:00
Christophe Romain
c0e7b298db Add missing export 2016-11-22 16:12:19 +01:00
Christophe Romain
cc63bcc997 Fix issues on import improvements 2016-11-22 16:01:08 +01:00
Paweł Chmielowski
ebadcf71c2 New bosh module 2016-11-22 15:26:15 +01:00
Christophe Romain
fbfbb96872 Improve ODBC import 2016-11-22 14:48:01 +01:00
Evgeniy Khramtsov
3189bb3bb9 Set 'sql_pool_size' to 1 by default for sqlite 2016-11-21 21:34:56 +03:00
Evgeniy Khramtsov
04fdf69737 Fix non-empty disco-nodes processing 2016-11-21 14:21:34 +03:00
Badlop
c5e7b4738f Fix handling mod_http_upload disco#info queries: need decoded elements
As reported in
https://www.ejabberd.im/forum/28605/ejabberd-modhttpupload-error-405-not-allowed
2016-11-21 12:06:11 +01:00
Evgeniy Khramtsov
e6365979bd Merge branch 'master' of github.com:processone/ejabberd 2016-11-21 12:14:37 +03:00
Evgeniy Khramtsov
274303f248 Fix conference disco#items when running multiple virtual hosts 2016-11-21 12:14:24 +03:00
Paweł Chmielowski
3f91668c46 Log more data for failed s2s connection 2016-11-21 09:52:36 +01:00
Evgeniy Khramtsov
c7ae916afc Don't forget to start XMPP application 2016-11-21 10:23:09 +03:00
Evgeniy Khramtsov
049a6d97f1 Fix RSM for conference disco#items 2016-11-20 18:08:49 +03:00
Evgeniy Khramtsov
13c6039700 Use xmpp_util.erl from XMPP library 2016-11-19 13:57:25 +03:00
Evgeniy Khramtsov
de7a143a2c Transform ejabberd_commands on the start 2016-11-19 13:05:13 +03:00
Evgeniy Khramtsov
9aff7e52a8 Switch to stand-alone XMPP library 2016-11-19 13:03:33 +03:00
Christophe Romain
45e77ea483 Remove useless NO_EXT_LIB flag 2016-11-18 12:25:01 +01:00
Evgeniy Khramtsov
f57f267c54 Merge branch 'master' of github.com:processone/ejabberd
Conflicts:
	test/ejabberd_SUITE.erl
2016-11-18 13:39:10 +03:00
Evgeniy Khramtsov
b8dcc911a3 Make common tests working again 2016-11-18 13:38:08 +03:00
Paweł Chmielowski
995c97671d Add auth to mod_http_fileserver 2016-11-17 12:59:46 +01:00
Christophe Romain
1c90b19d74 Fix typo 2016-11-16 18:24:12 +01:00
Badlop
3cd174cb56 Ensure that presence_broadcast room option is stored (#1380) 2016-11-16 13:35:50 +01:00
Badlop
b1723c6e2d Handle correctly p1_http:request result 2016-11-16 13:11:23 +01:00
Christophe Romain
2929f5b5bc Minor cosmetic changes on pubsub code 2016-11-15 18:35:20 +01:00
Christophe Romain
4d4ad922a2 Cosmetic validator changes 2016-11-15 18:14:21 +01:00
Christophe Romain
8df68266f2 Add missing verbs for RESTfull operation 2016-11-15 14:35:26 +01:00
Christophe Romain
2b93de6912 apply string optimizations 2016-11-15 14:32:22 +01:00
Paweł Chmielowski
5ffc01db53 Fix types in check_password_hash 2016-11-15 10:02:21 +01:00
Paweł Chmielowski
717159a98f Make string args in http_api be list strings 2016-11-15 10:02:21 +01:00
Christophe Romain
309962fb8b Use p1_http from p1_utils 1.0.6 2016-11-14 16:52:03 +01:00
Evgeniy Khramtsov
3765210698 Fix IQ result processing 2016-11-13 16:56:05 +03:00
Evgeniy Khramtsov
13d5da4da6 Add some copyright notices 2016-11-13 16:46:04 +03:00
Evgeniy Khramtsov
ebefd0d8d6 Add more control for decoding IQ payloads 2016-11-13 14:17:21 +03:00
Evgeniy Khramtsov
7e9f1a6dc1 Don't auto-decode forwarded payload 2016-11-13 13:41:04 +03:00
Evgeniy Khramtsov
21d78ed7f4 Don't use jlib.hrl outside of jlib.erl 2016-11-13 10:56:36 +03:00
Evgeniy Khramtsov
b8f22ff538 Deprecate most of the functions from jlib.erl 2016-11-13 10:44:53 +03:00
Evgeniy Khramtsov
534e73f732 Uncomment forgotten block of code 2016-11-12 14:51:43 +03:00
Evgeniy Khramtsov
de81c50199 Revert "Support to provide password when subscribing to a room (#1306)"
This reverts commit 566ac872fe.
2016-11-12 14:47:29 +03:00
Evgeniy Khramtsov
5d552c8463 Merge branch 'master' into xml-ng 2016-11-12 14:41:37 +03:00
Evgeniy Khramtsov
78a44e0176 Merge branch 'master' into xml-ng
Conflicts:
	src/adhoc.erl
	src/cyrsasl_oauth.erl
	src/ejabberd_c2s.erl
	src/ejabberd_config.erl
	src/ejabberd_service.erl
	src/gen_mod.erl
	src/mod_admin_extra.erl
	src/mod_announce.erl
	src/mod_carboncopy.erl
	src/mod_client_state.erl
	src/mod_configure.erl
	src/mod_echo.erl
	src/mod_mam.erl
	src/mod_muc.erl
	src/mod_muc_room.erl
	src/mod_offline.erl
	src/mod_pubsub.erl
	src/mod_stats.erl
	src/node_flat_sql.erl
	src/randoms.erl
2016-11-12 13:27:15 +03:00
Badlop
566ac872fe Support to provide password when subscribing to a room (#1306) 2016-11-10 20:48:43 +01:00
Mickael Remond
42bede77a1
Merge branch 'master' of github.com:processone/ejabberd 2016-11-09 09:04:58 +01:00
Mickael Remond
35506f5470
Expose unregister API command 2016-11-09 09:04:52 +01:00
Evgeniy Khramtsov
e841a6ec34 Add more tests for offline storage 2016-11-08 15:15:19 +03:00
Evgeniy Khramtsov
e9dd3ffe9c Merge branch 'xml-ng' of github.com:processone/ejabberd into xml-ng 2016-11-07 10:11:40 +03:00
Evgeniy Khramtsov
56c91d3c58 Add roster tests 2016-11-07 10:10:57 +03:00
Badlop
bd060bc1bb Support several groups separated by ; in add_rosteritem command 2016-11-04 18:45:27 +01:00
Badlop
49d3b7ec1d Throw error if room name or host has invalid characters (#1360) 2016-11-04 17:28:28 +01:00
Badlop
5e723bc90e Fix reading room jids from file for create and destroy_rooms_file commands 2016-11-04 16:54:31 +01:00
Paweł Chmielowski
62db030942 Merge mod_opt_type from db sub-modules to main module mod_opt_type 2016-11-04 12:58:08 +01:00
Holger Weiss
2a63d0e95a mod_mam: Use user JID for stanza ID 'by' attribute
Use the user (or room) JID instead of the server JID for the 'by'
attribute of <stanza-id/> and <archived/> tags.  That's what the
examples in XEP-0313 v0.2 and XEP-0359 v0.3.0 suggest.
2016-11-01 08:47:08 +01:00
Badlop
149cc9654f Append ; to privacy_list_data exporting lines (thanks to Marcio Luciano Donada) 2016-10-24 13:42:33 +02:00
Evgeniy Khramtsov
9d977e484a Use base64:mime_decode/1 for SASL packets
It will be now possible to accept SASL packets with only
single '=' character set as required by RFC6120
2016-10-22 13:09:11 +03:00
Evgeniy Khramtsov
f6236d456d Add more tests for privacy lists and blocking command 2016-10-22 13:01:45 +03:00
Prasad Vaidya
cdafd3254b Rollback minor change, to avoid redundant use of fail-safe function 2016-10-21 15:02:39 +05:30
Prasad Vaidya
509776a0d1 Fix: Replace erlang function with fail-safe jlib function. 2016-10-21 13:57:47 +05:30
Badlop
2ab72bcd00 Nidx may be integer or binary, so use jlib:i2l instead
As reported in
https://www.ejabberd.im/forum/28580/erlang-function-integertobinary1-throwing-badargs-exception
2016-10-20 21:56:19 +02:00
Badlop
0212559ca7 If a participant can change subject, let asubscriber too (#1345) 2016-10-20 20:35:00 +02:00
colm
3b876875e9 mod_muc: made the constant MAX_ROOMS_DISCOITEMS configurable 2016-10-18 21:59:34 +01:00
Evgeniy Khramtsov
d19552f464 Fix randoms:uniform/1 return
Make sure randoms:uniform/1 returns values from the same interval
as deprecated random:uniform/1
2016-10-18 08:35:47 +03:00
Evgeniy Khramtsov
4c5460f0bd Get rid of compile warnings for random/crypto modules on R19 2016-10-18 08:17:21 +03:00
badlop
90acec8a2b Merge pull request #1338 from marcphilipp/muc_invite_hook
Introduce muc_invite hook
2016-10-17 17:46:25 +02:00
Jerome Sautret
305d4c05dc Fix delete_old_messages command for SQL backends 2016-10-17 17:02:23 +02:00
Evgeniy Khramtsov
67720c7713 Add more MUC tests 2016-10-17 13:37:23 +03:00
Paweł Chmielowski
fd6f0f94b5 Convert ejabberd_xmlrpc to new api_permissions 2016-10-14 13:55:50 +02:00
Marc Philipp
a1faecc4c9 Introduce muc_invite hook
This adds a new hook that is triggered for each invite to an MUC room:

- muc_invite(RoomJID, RoomConfig, From, To, Reason) -> ok

where

- RoomJID = From = To = #jid (see jlib.h)
- RoomConfig = #config (see mod_muc_room.hrl)
- Reason = binary()
2016-10-14 12:52:59 +02:00
Holger Weiss
d97e777c9b Always include <actions/> with ad-hoc responses
XEP-0050 says: "The result for each stage (other than the last) of a
command's execution SHOULD include an <actions/> element."  Some clients
insist on this.
2016-10-13 22:34:29 +02:00
Holger Weiss
b693601dd1 Don't let MAM messages go into offline storage 2016-10-12 23:10:25 +02:00
badlop
4935ac8866 Merge pull request #1331 from weiss/send-message-omit-copies
Don't let "send_message" duplicate the message
2016-10-12 13:52:27 +02:00
Holger Weiss
ead7e21037 Ignore offline sessions in statistics
Offline sessions should not be counted when reporting the number of
connected resources.

Apart from that, this number is now also reported when using a
non-default session management backend.
2016-10-11 22:20:22 +02:00
Evgeniy Khramtsov
a915fd161e Create room on configuration request as per XEP-0045, 10.1.3 2016-10-10 10:51:39 +03:00
Holger Weiss
dffcfe74d4 Don't let "send_message" duplicate the message
In the past, the "send_message" command sent a copy of the message to
each resource if the message was addressed to the bare JID of a local
online user.  When message carbons are enabled, this creates duplicates;
and with MAM enabled, each copy is archived.  Therefore, "send_message"
no longer creates copies of the message.
2016-10-10 00:17:17 +02:00
Evgeniy Khramtsov
6a3691ef7c Add xdata generator and make some code using it 2016-10-07 10:31:03 +03:00
Holger Weiss
d701230555 Make map syntax compatible with Erlang/OTP 17 2016-10-07 00:36:47 +02:00
Holger Weiss
e54ba3db5b XEP-0198: Cope with invalid 'from'/'to' attributes
Check whether the 'from' and 'to' attributes are valid before bouncing
or resending a stanza from the stream management queue.  They might be
invalid in certain corner cases.

Thanks to Evgeniy for spotting this.
2016-10-06 23:20:45 +02:00
Paweł Chmielowski
b01fbfadf3 Use correct field for oauth scope 2016-10-06 11:03:26 +02:00
Paweł Chmielowski
438dbc8bda Make handling of oauth clauses be more consistent with other rules 2016-10-06 10:59:43 +02:00
Paweł Chmielowski
8accb8ee0c Use proper default value for api_permissions 2016-10-06 10:59:43 +02:00
Paweł Chmielowski
98e0123ca4 New api permissions framework 2016-10-05 13:21:11 +02:00
s.budaev
026394a314 Added option to disable prepared statements (postgresql only) 2016-10-05 04:27:08 +04:00
Holger Weiss
9cee3760db ejabberd_sm: Clean up old offline session entries
If the number of offline sessions exceeds the 'max_user_sessions' limit,
remove the oldest entry from the table.
2016-10-02 22:01:03 +02:00
Christophe Romain
1de0bb83a0 PubSub: creation jid must be bare jid 2016-09-30 07:51:33 +03:00
Christophe Romain
7566e267a7 PubSub: fix error type on item deletion with insufficient priviledge 2016-09-30 07:51:17 +03:00
Christophe Romain
15ebb79160 PubSub: creation jid must be bare jid 2016-09-29 16:10:11 +02:00
Christophe Romain
767dba8f3b PubSub: fix notification on subscription change 2016-09-29 12:00:59 +02:00
Christophe Romain
a42bf67957 PubSub: fix error type on item deletion with insufficient priviledge 2016-09-29 11:20:56 +02:00
Badlop
6f538545b4 Fix 404 response formatting (thanks to Kaggggggga)(#1306) 2016-09-28 11:03:46 +02:00
Holger Weiss
d4b4f35a0e ejabberd_http: Handle missing POST data gracefully
Return a "bad request" error instead of crashing if receiving POST/PUT
data fails.
2016-09-27 23:22:30 +02:00
Alexey Shchepin
acab2270f1 Use inets instead of lhttpc in http_p1 2016-09-27 07:12:10 +03:00
Alexey Shchepin
ac6f701033 Add http_p1.erl, rest.erl, and oauth2 ReST backend for tokens. 2016-09-27 05:57:14 +03:00
Evgeniy Khramtsov
3112a7187f Test anonymous auth 2016-09-25 09:57:56 +03:00
Evgeniy Khramtsov
fa31e3ef23 Deprecate jlib:integer_to_binary/1 and jlib:binary_to_integer/1 2016-09-24 23:34:28 +03:00
Evgeniy Khramtsov
58969fb854 Improve namespace handling 2016-09-24 14:17:21 +03:00
Evgeniy Khramtsov
53209b9ab1 Add tests for s2s code 2016-09-23 12:30:33 +03:00
Evgeniy Khramtsov
ceda073766 Add tests for external component 2016-09-21 10:45:11 +03:00
Evgeniy Khramtsov
a4ec064455 Add more tests for C2S 2016-09-20 14:04:07 +03:00
Holger Weiss
e7787e2f33 mod_carboncopy: Don't copy MUC PMs
Carbon copies of private MUC message are generally not desired,
especially not when multiple clients joined the room with the same nick.
In this case, the MUC service usually sends PMs to all joined resources
anyway, so carbon-copying those PMs would create duplicates.
2016-09-19 22:46:36 +02:00
Badlop
5bcfcf4c5e When getting list of subscribed rooms, check all including temporary ones (#1242) 2016-09-19 13:46:01 +02:00
Badlop
9fa92092bf Revert "Fix getting of subscribed rooms: consider also temporary ones (#1242)"
This reverts commit f2cc81dfea.
2016-09-19 12:54:19 +02:00
Badlop
f2cc81dfea Fix getting of subscribed rooms: consider also temporary ones (#1242) 2016-09-19 12:35:53 +02:00
Badlop
8244c1fa8c Store the Allow Subscription room option (#1301) 2016-09-19 12:35:32 +02:00
Badlop
ed62d705d8 Don't worry about storage_type of the Acl mnesia table (#1206) 2016-09-19 11:59:40 +02:00
Badlop
da291d804c Use mnesia calls instead of ets for Acl and Access tables (#1206) 2016-09-19 11:56:22 +02:00
Holger Weiss
27999a122f node_mb_sql: Add missing (SQL-specific) functions 2016-09-15 23:02:04 +02:00
Evgeniy Khramtsov
151668ac10 Fix dialyzer warnings for mod_mam 2016-09-13 16:56:34 +03:00
Christophe Romain
c39501a48d Merge branch 'push-requirements' of https://github.com/weiss/ejabberd into weiss-push-requirements 2016-09-13 14:29:14 +02:00
Christophe Romain
c3543e002d Allow to create room with custom config 2016-09-13 11:52:59 +02:00
Evgeniy Khramtsov
e987b88848 Make common tests working again 2016-09-13 12:30:05 +03:00
Paweł Chmielowski
2f596b0e10 Expand parsing of json input to be able to handle update_roster command 2016-09-13 11:27:59 +02:00
Paweł Chmielowski
054382f074 Add X-Admin and basic auth header to CORS allowed headers in http_api 2016-09-12 15:40:38 +02:00
Paweł Chmielowski
96d05dad8f Properly process OPTIONS header in http_api for all paths 2016-09-12 15:40:38 +02:00
Evgeniy Khramtsov
1aca541639 Fix nick-to-jid mapping for MUC subscribers 2016-09-12 14:41:33 +03:00
Badlop
d0761039ff Support multiple room invitations (#1285) 2016-09-09 12:18:27 +02:00
Evgeniy Khramtsov
fe1bf27ef3 Fix subscribed rooms list retreivement 2016-09-09 13:04:47 +03:00
Holger Weiss
d222fed228 XEP-0198: Cancel timer when waiting for resumption
If an ACK timer is active while going into the 'wait_for_resume' state,
cancel that timer.
2016-09-09 00:21:36 +02:00
Holger Weiss
8fd888eb2b Revert "Don't log an [error] message if Elixir is missing"
This reverts commit 41386d718d.  The issue
was fixed with commit 4bd45bada7.
2016-09-08 18:11:54 +02:00
Holger Weiss
41386d718d Don't log an [error] message if Elixir is missing
The Elixir support is still optional.

Closes #1250.
2016-09-08 17:59:40 +02:00
Christophe Romain
26a040e2d5 Fix typo on previous commit (#1284) 2016-09-08 16:32:16 +02:00
Paweł Chmielowski
4bd45bada7 Start elixir config code only if elixir was enabled in configure script 2016-09-08 16:29:45 +02:00
Christophe Romain
ad39da0b0a Full jid entity subscriptions should include bare jid records (#1284) 2016-09-08 16:27:16 +02:00
Evgeniy Khramtsov
c29a48695d Rename #error{} record to #stanza_error{} 2016-09-08 17:08:48 +03:00
Evgeniy Khramtsov
36ab9cc2ea Fix message routing from subscribers 2016-09-08 16:39:34 +03:00
Evgeniy Khramtsov
5ec972b00f Improve pubsub code 2016-09-08 15:49:27 +03:00
Paweł Chmielowski
6c943aa293 Merge pull request #1287 from weiss/ack-timeout
New stream management option: ack_timeout
2016-09-08 12:45:16 +02:00
gabrielgatu
803270fc6b
Support for Elixir configuration file #1208
Contribution for Google Summer of code 2016 by Gabriel Gatu
2016-09-08 11:37:14 +02:00
Paweł Chmielowski
d2621130a3 Typo 2016-09-08 10:27:14 +02:00
Paweł Chmielowski
a8368278ec Properly normalize resource_regexp acl rule
This fixes issue #1288.
2016-09-08 08:45:10 +02:00
Holger Weiss
621f0e2b7c New stream management option: ack_timeout
Close the connection if a stream management client fails to respond to
an acknowledgement request within 60 seconds.  This number of seconds
can be changed with the new "ack_timeout" option, and the mechanism can
be disabled by specifying 'infinity'.

As a side effect of this change, a new acknowledgement is no longer
requested before the response to the previous request is received.
2016-09-07 23:16:54 +02:00
Christophe Romain
7a538bb88b Enforce pathtype use with config path (#1264) 2016-09-07 17:38:35 +02:00
Christophe Romain
af0a493c66 Merge pull request #1253 from Amuhar/xep0356 2016-09-07 14:34:31 +02:00
Evgeniy Khramtsov
f304149615 Create room on configuration request as per XEP-0045, 10.1.3 2016-09-07 11:15:19 +03:00
Evgeniy Khramtsov
3803a8de3c Link MUC subscription to bare JID 2016-09-07 10:33:37 +03:00
Holger Weiss
1edca899ff Add SQL support for microblogging node plugin 2016-09-07 07:15:12 +02:00
Evgeniy Khramtsov
c6afb9731b Handle <subscriptions/> request to list MUC subscribers 2016-09-06 19:06:02 +03:00
Evgeniy Khramtsov
5ec2874a96 Do not update muc_online_users table on MUC/Sub operations 2016-09-06 18:17:30 +03:00
Evgeniy Khramtsov
417284a921 Add get_subscribers command to list MUC subscribers 2016-09-06 17:55:18 +03:00
Holger Weiss
af2999a783 node_mb: Call node_pep instead of node_hometree 2016-09-06 00:30:46 +02:00
Holger Weiss
48ce34987d node_mb: Fix configuration documentation
A node plugin used in a 'pep_mapping' must explicitly be added to the
list of 'plugins'.
2016-09-06 00:08:43 +02:00
Holger Weiss
e29f47893f mod_pubsub: Remove outdated comment 2016-09-06 00:05:54 +02:00
Evgeniy Khramtsov
45eb49125b Rewrite mod_pubsub to use XML codec 2016-08-30 09:48:08 +03:00
Igor Manturov Jr
f1afea223b Fixed typo in Stream Management option name 2016-08-23 02:21:09 +06:00
Igor Manturov Jr
d5659735b3 Fixed #1260 Stream Management feature for the websocket connections 2016-08-23 00:59:39 +06:00
Holger Weiss
23d9fb0592 mod_muc_admin: Accept 'allow_subscription' option
Allow for setting the new 'allow_subscription' option using the
'change_room_option' command.
2016-08-22 01:17:32 +02:00
Badlop
8af85d913f Erlang R17 has a Time limit in erlang:send_after (#1246) 2016-08-16 18:32:06 +02:00
Holger Weiss
20a510d877 mod_mam: Add 'store_mam_message' hook
The new 'store_mam_message' hook is invoked whenever a MAM message is
stored.
2016-08-15 23:28:36 +02:00
Holger Weiss
8821cf8b27 mod_offline: Add 'store_offline_message' hook
The new 'store_offline_message' hook is invoked whenever an offline
message is stored.
2016-08-15 22:30:08 +02:00
Holger Weiss
4d19fb518f ejabberd_c2s: Add XEP-0198 resumption hooks
The new 'c2s_session_pending' and 'c2s_session_resumed' hooks are
invoked when a stream management session is pending and resumed,
respectively.
2016-08-15 21:49:58 +02:00
Holger Weiss
e7217e6320 Add functions to get/set some c2s state elements 2016-08-15 20:24:43 +02:00
Badlop
5b4f347da8 Support sql backend in mod_shared_roster commands (#1244) 2016-08-15 15:53:35 +02:00
Evgeny Khramtsov
38666cfd58 Merge pull request #1245 from hamano/clean_redis_table
fix clean redis table
2016-08-15 15:12:20 +04:00
HAMANO Tsukasa
877d0752e2 fix clean redis table 2016-08-15 17:51:06 +09:00
Badlop
0ab08f4eeb Don't delete ejabberd_commands table, it's problematic in cluster (#1210) 2016-08-14 20:35:25 +02:00
Holger Weiss
4ee8af633b Store announcements for offline users
Add a <store/> hint to announcements (unless they are explicitly sent to
online users).  Without that hint, announcements weren't delivered to
offline users, since they are sent as messages of type "headline".
2016-08-13 00:07:27 +02:00
Holger Weiss
bf9d6b5534 Honor <store/> hint for any non-"error" message
XEP-0334 says: "A message containing the <store/> hint that is not of
type 'error' SHOULD be stored by the entity."
2016-08-12 21:13:10 +02:00
Holger Weiss
28dde294e5 mod_mam: Don't store messages of type "headline"
XEP-0313 says: "a server SHOULD include in a user archive all of the
messages a user sends or receives of type 'normal' or 'chat' that
contain a <body> element."
2016-08-12 20:38:17 +02:00
Evgeniy Khramtsov
31faa4eb9a Add more type specs 2016-08-12 13:17:42 +03:00
Evgeniy Khramtsov
ffba664f2c Add a requirement for full JID in subscribe_room command 2016-08-11 17:13:20 +03:00
Paweł Chmielowski
50596dc4d3 Provide proper args_desc in oauth_issue_token command 2016-08-10 11:26:04 +02:00
Paweł Chmielowski
e63fe5c216 Fix result type of subscribe_room command 2016-08-10 11:22:19 +02:00
Evgeniy Khramtsov
1fc58ace2f Add commands for MUC subscriptions management 2016-08-09 13:36:43 +03:00
Evgeniy Khramtsov
522a186a38 Improve some type specs 2016-08-09 10:56:32 +03:00
Mickael Remond
efc744092b
We do not force yet access rules check on register command 2016-08-07 18:27:16 +02:00
Mickael Remond
a0c8012c66
Do not force command line to pass a credentials 2016-08-07 18:24:08 +02:00
Holger Weiss
b62aa3d2dc mod_client_state: Let other modules filter stanzas
Don't stop execution of the 'csi_filter_stanza' hook if mod_client_state
won't queue the stanza.
2016-08-06 13:36:27 +02:00
Holger Weiss
91e26fbf7a Add user's JID to CSI hook arguments
Add the JID of the CSI user to the arguments of the 'csi_filter_stanza'
and 'csi_flush_queue' hooks.
2016-08-05 23:47:18 +02:00
Holger Weiss
c2ef55a075 Cosmetic change: Set CSI state 'active' on resume
The CSI state is always set to 'active' when a stream management session
is resumed; so there's no need to apply the CSI state of the old c2s
process, first.
2016-08-05 20:09:52 +02:00
Evgeniy Khramtsov
4ff8d7918a Change code to reflect recent changes in fxml_gen 2016-08-05 08:41:08 +03:00
Holger Weiss
9a5f0751be mod_mam: Simplify "assume_mam_usage" option
The "assume_mam_usage" option now takes a boolean value.  Setting it to
"true" has the same effect as "if_enabled" had before.  The "on_request"
behavior is no longer offered, as it made the option (and its
documentation) overly complex.
2016-08-05 01:57:01 +02:00
Evgeniy Khramtsov
b487ccfb34 Delete mod_configure2
The module doesn't work properly for many years and nobody reported
this, which means nobody is using it. Also, mod_configure does
the same (and more) in a standard compliant way (XEP-0133).
2016-08-04 16:45:33 +03:00
Evgeniy Khramtsov
ca217dc105 Rewrite HTTP Bind and Web Admin code to use XML generator 2016-08-04 13:41:38 +03:00
Evgeniy Khramtsov
8b81b9ecb1 Rewrite PIEFXIS code to use XML generator 2016-08-04 13:37:07 +03:00
Evgeniy Khramtsov
cbdc106427 Rewrite jd2ejd to use XML generator 2016-08-04 12:34:12 +03:00
Evgeniy Khramtsov
bc33a3873d Rewrite multicast code to use XML generator 2016-08-04 11:49:17 +03:00
Christophe Romain
72b0fb49e8 Fix type convertion bug injected by 4ccc40b (#1229) 2016-08-04 09:49:23 +02:00
Alexey Shchepin
111aa83f5e Add tokens cache to ejabberd_oauth 2016-08-04 01:59:28 +03:00
Evgeniy Khramtsov
abb4446b51 Fix calls to undefined functions 2016-08-03 21:00:22 +03:00
Evgeniy Khramtsov
a417fbf45b Rewrite mod_irc to use XML generator 2016-08-03 20:57:05 +03:00
Evgeniy Khramtsov
5d06c6acbf Rewrite mod_configure to use XML generator 2016-08-03 10:34:54 +03:00
Holger Weiss
78fa9e08a5 XEP-0198: Handle timeouts during stream resumption
If session resumption failed because requesting the #state from the old
c2s process took too long, the new c2s process will usually receive the
response.  Let the new process handle that case gracefully.
2016-08-03 02:28:46 +02:00
Holger Weiss
3c1e4f0dfd XEP-0198: Increase timeout for stream resumption
During stream resumption, the #state is transferred from the old c2s
process to the new one.  This is usually very fast, but under certain
conditions, it can take longer than five seconds.
2016-08-03 02:15:15 +02:00
Alexey Shchepin
4add262090 Add OAUTH SQL backend 2016-08-01 16:55:43 +03:00
Mickaël Rémond
2ef58a33a9 Merge pull request #1223 from processone/expand_api
More API fixes and improvements
2016-08-01 15:36:47 +02:00
Mickael Remond
d02d7b2b6a
Remove compile warning 2016-08-01 15:35:54 +02:00
Mickael Remond
90ea3ca361
Improve error message when try to call api on api root 2016-08-01 15:29:47 +02:00
Christophe Romain
bf45c9eeee Switch mix worker to transient 2016-08-01 14:09:16 +02:00
Christophe Romain
a9c6748ec7 Add missing comas in sql statement (#1219) 2016-08-01 10:55:02 +02:00
Mickael Remond
c5c394e929
Fix HTTP process return formatting 2016-08-01 08:58:49 +02:00
Mickael Remond
6ea7153e31
Improve error handling 2016-07-31 22:48:24 +02:00
Evgeniy Khramtsov
c0272ae766 Rewrite mod_stats to use XML generator 2016-07-31 14:51:16 +03:00
Evgeniy Khramtsov
e258462b6b Improve vCard creation from LDAP result 2016-07-31 14:17:17 +03:00
Evgeniy Khramtsov
0bcbd12776 Rewrite mod_mix to use XML generator 2016-07-31 08:51:47 +03:00
Mickael Remond
2a49f8cae7
Change name of result key for offline count to value
This is more user friendly and should be more consistent with other commands.
2016-07-30 20:12:04 +02:00
Mickael Remond
674a8039ef
Add support for sending back missing scope error to API ReST command calls 2016-07-30 18:51:54 +02:00
Mickael Remond
4bf8ce7681
Make s2s stats commands more robust 2016-07-30 18:50:58 +02:00
Evgeniy Khramtsov
eb1d385d4e Get rid of "jlib.hrl" dependency in mod_service_log 2016-07-30 18:42:17 +03:00
Evgeniy Khramtsov
5cd1cf5096 Get rid of "jlib.hrl" dependency in some modules 2016-07-30 18:37:57 +03:00
Evgeniy Khramtsov
792e6a7c1c Rewrite mod_http_upload to use XML generator 2016-07-30 17:48:52 +03:00
Mickael Remond
19ad6e6145
Ensure ejabberdctl status result is in valid shell supported range 2016-07-30 13:18:39 +02:00
Mickael Remond
39640b67c7
Add support for rich error reporting for API 2016-07-30 13:08:30 +02:00
Evgeniy Khramtsov
d2d3b961eb Rewrite mod_sic to use XML generator 2016-07-30 13:30:29 +03:00
Mickael Remond
fb2603d3cd
Return 409 conflict error code on register if user already exists 2016-07-30 11:50:04 +02:00
Mickaël Rémond
4a49dfecf3 Merge pull request #1221 from processone/expand_api
Do not crash on check when we do not have JID
2016-07-30 10:55:39 +02:00
Evgeniy Khramtsov
f19d2fdcff Rewrite mod_shared_roster backends module to use XML generator 2016-07-30 08:39:30 +03:00
Evgeniy Khramtsov
a093e9d441 Rewrite mod_shared_roster to use XML generator 2016-07-30 08:37:34 +03:00
Mickael Remond
42e6f72ee9
Do not crash on check when we do not have JID 2016-07-29 20:38:05 +02:00
Evgeniy Khramtsov
9bf1bac7df Rewrite mod_vcard_ldap to use XML generator 2016-07-29 17:39:13 +03:00
Evgeniy Khramtsov
f91f2bc3d2 Rewrite several modules to use XML generator 2016-07-29 13:21:00 +03:00
Christophe Romain
a080322055 Switch workers from temporary to transient 2016-07-29 11:18:42 +02:00
Paweł Chmielowski
fd365b2893 Display data that is send to websocket connection in debug log level
This should help with detecting problems like in #1097
2016-07-28 16:20:28 +02:00
Christophe Romain
fad088a3c4 Merge pull request #1193 from gabrielgatu/support-elixir-module-installer
Fix issue #625: Writing Elixir modules
2016-07-28 16:06:12 +02:00
gabrielgatu
91865c66c0 Start elixir application after ejabberd_app:start_apps() 2016-07-28 15:57:35 +02:00
Mickaël Rémond
7a74a4836a Merge pull request #1211 from processone/expand_api
There is still work to do, be we reached a stable state and can merge up to this point.
2016-07-28 14:57:48 +02:00
Evgeniy Khramtsov
b31ebd2ea0 Rewrite captcha to use XML generator 2016-07-28 15:10:41 +03:00
Evgeniy Khramtsov
96e912b09a Rewrite mod_register to use XML generator 2016-07-27 18:06:54 +03:00
Evgeniy Khramtsov
8275e95a16 Swap variables in their correct places 2016-07-27 18:06:34 +03:00
Evgeniy Khramtsov
1097d31d63 Fix type spec for set_from_to/3 2016-07-27 18:05:11 +03:00
Evgeniy Khramtsov
c409ed2f2c Rewrite S2S and ejabberd_service code to use XML generator 2016-07-27 10:45:08 +03:00
Holger Weiss
72445bb374 mod_http_upload_quota: Apply cosmetic changes
Use "fun f/1" syntax in place of "fun(X) -> f(X) end".
2016-07-27 00:28:47 +02:00
Evgeniy Khramtsov
984c4cf6bd Add 'allow_subscription' MUC configuration option 2016-07-26 14:37:28 +03:00
Mickael Remond
7781f39b74
Clarify command module API 2016-07-26 12:15:03 +02:00
Mickael Remond
e5fd1ee4f6
Avoid starting several time the owner process 2016-07-26 12:12:48 +02:00
Mickael Remond
9ff7257287
Make jlib ETS table more resilient 2016-07-26 11:58:14 +02:00
Mickael Remond
12f74b4aa7
Fix list appending bug 2016-07-26 11:57:38 +02:00
Evgeniy Khramtsov
23858469b7 Get rid of "jlib.hrl" dependency in some files 2016-07-26 11:29:17 +03:00
Evgeniy Khramtsov
c26d38a893 Remove jlib dependency from acl.erl 2016-07-26 10:01:59 +03:00
Evgeniy Khramtsov
da310a5173 Rewrite mod_adhoc and mod_announce to use XML generator 2016-07-26 09:52:29 +03:00
Alexey Shchepin
839490b0d9 Add DB backend support for ejabberd_oauth 2016-07-25 20:08:30 +03:00
Mickael Remond
c183092aa4
Simplify code for command policy group expansion 2016-07-25 18:28:05 +02:00
Badlop
5d4f8bcf0d Export acl:parse_ip_netmask/1 for mod_rest (ejabberd-contrib#175) 2016-07-25 16:57:05 +02:00
Evgeniy Khramtsov
179fcd9521 Rewrite mod_mam and mod_muc to use XML generator 2016-07-25 13:50:30 +03:00
Mickael Remond
d7ad99f147
Initial attempt on access on commands
May change and will require more work / test / refactor
2016-07-25 11:43:49 +02:00
Holger Weiss
4b0d71d402 Don't return error for blocked MUC PMs
If a message stanza is blocked as per XEP-0016 or XEP-0191 and the
stanza is marked as a private MUC message, don't return an error.  This
makes sure users won't be kicked from MUC rooms when blocking other
participants.
2016-07-24 20:55:11 +02:00
Mickael Remond
b4a430541d
Return more user friendly, human readable error description 2016-07-24 14:10:12 +02:00
Mickael Remond
bfa61eaa46
Make default OAuth token TTL values more user friendly 2016-07-23 18:57:57 +02:00
Mickael Remond
68555ff466
Add support for checking access rules conformance for commands 2016-07-23 18:21:45 +02:00
Mickael Remond
1485b56211
Move any access rules check to ACL module 2016-07-23 18:21:45 +02:00
Mickael Remond
2c70c572c8
Clean-up of error codes and format json structure 2016-07-23 18:21:45 +02:00
Holger Weiss
d4d1941133 XEP-0198: Log debug message when dropping stanza
Log a debug message when an unacknowledged message is neither resent nor
bounced because it's archived.
2016-07-23 01:23:24 +02:00
Holger Weiss
814b80c644 Preserve PID for offline sessions
Don't set the PID to 'undefined' when a session goes offline, as this
looses the information which node created the session table entry.

Fixes #1196.
2016-07-23 01:08:05 +02:00
Pablo Polvorin
4332dddbc4 Support oauth password grant type
As in https://tools.ietf.org/html/rfc6749#section-4.3
2016-07-22 19:17:12 -03:00
Pablo Polvorin
caf7b54305 oauth: single jid field instead of username/password fields 2016-07-22 15:37:48 -03:00
Badlop
c5d9d35e7b Convert password provided by web form to UTF8 before passing it (#375) 2016-07-22 16:52:13 +02:00
Jerome Sautret
ffbe97d988 Quote postgresql database name (#1136) 2016-07-22 16:33:40 +02:00
Paweł Chmielowski
bdfef09c0f Fix handling of complex values as arguments in http_api 2016-07-22 15:26:27 +02:00
Evgeny Khramtsov
dd38bef8b1 Merge pull request #1201 from xmppjingle/master
External Component Connection Hooks
2016-07-22 00:35:43 +04:00
xmppjingle
6983dfa21f External Component Hook
Changed Hook Trigger Event and included a Reason upon
component_disconnected/2 Hook
2016-07-21 14:03:01 -03:00
Pablo Polvorin
cbfab687e8 Oauth callback must pass expires_in as ttl instead of epoch 2016-07-20 14:47:11 -03:00
Pablo Polvorin
b5a90be3cb Merge branch 'master' of github.com:processone/ejabberd 2016-07-19 20:19:17 -03:00
Pablo Polvorin
1d317e8068 Let user choose the desired oauth token TTL 2016-07-19 20:18:07 -03:00
Holger Weiss
8f8c499cfa mod_mam: Fix handling of result set page limit
Restore function clause for handling a client-specified result set page
limit that doesn't exceed mod_mam's upper threshold.
2016-07-19 21:23:30 +02:00
Holger Weiss
9fcb81dea9 mod_mam: Always limit result set page size
Limit the number of messages returned for a given MAM request even if
the client didn't specify an RSM set (not just if the client specified
an RSM set without a limit).

This is still not done for MAM v0.2 requests though, as that version of
the XEP doesn't require clients to support RSM.
2016-07-19 21:08:13 +02:00
Evgeniy Khramtsov
5d90292849 Fix hooks de-registration 2016-07-19 15:33:17 +03:00
Paweł Chmielowski
655cbf6055 Make access rules in ejabberd_web_admin configurable 2016-07-19 11:27:45 +02:00
Evgeniy Khramtsov
bc802a4049 Rewrite mod_blocking to use XML generator 2016-07-19 10:07:04 +03:00
Evgeniy Khramtsov
a4a9dd7f03 Rewrite mod_offline to use XML generator 2016-07-19 07:56:14 +03:00
Pablo Polvorin
483ef09263 Fix command argument formatting 2016-07-19 00:51:04 -03:00
Pablo Polvorin
33e0283f0d Add 'ejabberd:user' and 'ejabberd:admin' oauth scopes
'ejabberd:user' includes all commands defined with policy "user".
'ejabberd:admin' includes commands defined with policy "admin".
2016-07-19 00:24:06 -03:00
Pablo Polvorin
673a654c47 Fix ce0d1704c6
Original request was to allow ejabberd sysadmin to generate
tokens for specific users.  JIDs must not be passed as argument
when requesting the tokens.
2016-07-18 20:25:23 -03:00
xmppjingle
48c88b61b6 Merge remote-tracking branch 'processone/master' 2016-07-18 17:55:31 -03:00
xmppjingle
fca2f24231 External Component Connection Hooks 2016-07-18 17:55:10 -03:00
Holger Weiss
8bc3dc9c49 jlib: Don't try to keep just one <delay/> tag
It seems unclear whether XEP-0203 really mandates that stanzas may not
have multiple <delay/> tags.  Editing/removing existing tags doesn't
seem worth the effort, especially as we'd have to take more care which
tag to keep if the stanza already has more than one.
2016-07-18 22:31:08 +02:00
Evgeniy Khramtsov
9a8e197d7e Initial version based on XML generator 2016-07-18 15:01:32 +03:00
Holger Weiss
749033598d Omit [info] message with number of queued stanzas
Just log a debug message if a stream management session times out and
some stanzas weren't acknowledged.
2016-07-10 22:21:57 +02:00
Evgeniy Khramtsov
f6e960d326 Fix compilation error 2016-07-10 08:45:24 +03:00
Evgeniy Khramtsov
786bd4f26c Use hooks instead of direct calls to mod_mam 2016-07-09 12:43:01 +03:00
Holger Weiss
5f48d2641b mod_http_upload_quota: Depend on mod_http_upload
mod_http_upload_quota uses mod_http_upload's "docroot" option, so the
mod_http_upload configuration must be parsed, first.  Fixes #1025.
2016-07-08 20:47:02 +02:00
Christophe Romain
6b38d19085 Do send last items only for subscription on current plugin type 2016-07-08 15:18:39 +02:00
Evgeniy Khramtsov
661b041302 Rename MUC/Sub's namespace 2016-07-08 15:07:26 +03:00
Evgeniy Khramtsov
368b202144 Handle MUC/Sub subscriptions list request 2016-07-08 15:07:10 +03:00
Evgeniy Khramtsov
caaf02eaa0 Advertise MUC/Sub support in MUC service disco#info 2016-07-08 15:06:08 +03:00
Evgeniy Khramtsov
32de9a56a5 Experimental MUC/Sub support 2016-07-08 15:05:50 +03:00
Evgeniy Khramtsov
71f27ee7d4 Get rid of warnings 2016-07-07 12:17:38 +03:00
Evgeniy Khramtsov
c718cbbd9f Warn on cyclic modules dependencies 2016-07-07 11:34:17 +03:00
Badlop
12c0d888b1 Revert "Recover fix of 907e239 lost in 9deb294 (thanks to Alexey Shchepin)" (#1183)
This reverts commit 53f3a45803.
2016-07-06 17:54:37 +02:00
Evgeniy Khramtsov
4220a2b98c Make modules loading in a dependent order (#1191) 2016-07-06 14:58:48 +03:00
Christophe Romain
de9f80f2ce Add missing '/' for jid matching from commit e300f80 2016-07-06 10:06:17 +02:00
Alexey Shchepin
be3a4acb55 Fix missed escaping in node_flat_sql.erl 2016-07-05 17:45:37 +03:00
Christophe Romain
3820aaa421 Quote reserver 'type' keyword for pgsql to fix e300f80 2016-07-05 16:16:40 +02:00
Christophe Romain
e300f8095d Fix use of like parameter in sql pubsub's requests 2016-07-05 15:43:59 +02:00
gabrielgatu
b31c0d9e2e Support elixir module installer 2016-07-05 12:36:49 +02:00
Holger Weiss
8e04a7ef4d mod_configure: Fix editing of access rules 2016-07-03 22:58:54 +02:00
Paweł Chmielowski
0737958b45 Fix compilation issues on R19 2016-07-01 21:20:10 +02:00
Holger Weiss
8be1d49961 mod_mam_mnesia: Force garbage collection
The VM fails to collect the garbage generated during MAM lookups
automatically, so mod_mam_mnesia's memory usage easily goes up to
several gigabytes if we don't force garbage collection.
2016-06-29 22:32:59 +02:00
Holger Weiss
10d4c16a97 mod_client_state: Throttle PEP stanzas by default 2016-06-29 22:22:49 +02:00
Pablo Polvorin
ce0d1704c6 Allow generation of oauth tokens from command line
Oauth tokens can be generated for commands (scopes) having admin|user|open
policy. Restricted commands are not available as those are only usable
from ejabberdctl command line.

Four new commands are available:

$ejabberdctl oauth_issue_token "stats;get_roster"
    Generates a token authorized to call both stats and get_roster
    commands.  Note scopes must be separated by semicolon.

$ejabberdctl oauth_list_tokens
    List tokens generated from the command line, with their scope
    and expirity time.

$ejabberdctl oauth_list_scopes
    List scopes available

$ejabberdctl oauth_revoke_token "Lbs7qdJfdKXOWzVrArgyckY055tE1xnt"
    Revokes the given token
2016-06-29 00:22:28 -03:00
Paweł Chmielowski
3446aba753 Include correct version in stream:stream when reporting errors
This fixes issue #1174
2016-06-27 16:40:57 +02:00
Paweł Chmielowski
f56cff925c acl: ACLName rule should match if any part of ACLName matches 2016-06-24 15:09:51 +02:00
Holger Weiss
1794dd19d0 mod_pubsub: Fix matching of set_node/1 result
nodetree_tree_sql:set_node/1 returns {result, NodeIdx} on success, not
{ok, NodeIdx}.  Thanks to Christophe Romain for spotting this.
2016-06-23 14:23:24 +02:00
Paweł Chmielowski
1b5c50a384 When convertion of xmlrpc argument to type fails, report it as error 2016-06-23 10:41:16 +02:00
Holger Weiss
065f5272e6 mod_blocking_sql: Handle default list corner case
Handle the situation where a list of the name "Blocked contacts" was
created by an XEP-0016 client, but no default list exists.
2016-06-22 22:36:27 +02:00
Christophe Romain
cd0244eb71 Merge pull request #1120 from anagromataf/feature/archive-id-in-message-carbons
Send unique stanza id and archived tag also in the message carbons
2016-06-22 15:47:27 +02:00
Christophe Romain
f029488260 Restore get_items conditions when not using RSM (#1147) 2016-06-22 13:12:40 +02:00
Badlop
eeeb190680 Set HTTP/1.0 so github accepts the request (#1157) 2016-06-22 12:43:24 +02:00
Christophe Romain
95ff94b054 Fix PubSub RSM on get_items (#1147) 2016-06-22 12:25:41 +02:00
Christophe Romain
7744339347 Update supported xep version 2016-06-22 11:24:01 +02:00
Christophe Romain
2efa8677c9 Fix pgsql compatibility on delete_old_messages (#1137) 2016-06-22 11:21:11 +02:00
Holger Weiss
c928956d73 XEP-0198: Apply cosmetic changes 2016-06-21 23:17:17 +02:00
Holger Weiss
7ddeac38b6 XEP-0198: Also count stanzas when socket is closed
Don't forget to count stanzas received from the stream management client
that are processed right after the connection was lost.
2016-06-21 22:54:41 +02:00
Paweł Chmielowski
3a8da27d86 Use {access,shaper}_rules_validator in other places where access rules are used 2016-06-21 13:18:24 +02:00
Paweł Chmielowski
52d45604ba Use new access_rules_validator in couple places 2016-06-21 12:28:53 +02:00
Paweł Chmielowski
804190e4a8 Add acl:{access,shaper}_rules_validator for use in {mod_}opt_type() 2016-06-21 12:26:31 +02:00
Paweł Chmielowski
4b9613e8fe Allow {mod_}opt_type to transform values passed to it, and for better error reporting 2016-06-21 12:25:29 +02:00
Christophe Romain
b2f53fb962 Avoid cleanup on bag when disc_only, switch in memory (#1161) 2016-06-21 10:43:19 +02:00
Holger Weiss
c91c5aa352 Fix handling of queued stanzas on session timeout
Don't fail to resend or bounce unacknowledged stanzas if the stream
management session timed out.

Closes #1160.
2016-06-19 23:32:15 +02:00
Paweł Chmielowski
1fb1e8721b Allow using shaper defined by name like in in s2s_shaper: fast 2016-06-16 11:04:01 +02:00
Paweł Chmielowski
0a09f27373 Typo in option name 2016-06-16 11:00:38 +02:00
Paweł Chmielowski
7b308e0d41 Add shorter version of some common access rules definitions
This add conversion of

- allow
to
- allow: all

and

- allow: acl_name
to
- allow:
  - acl: acl_name

(this works also for deny, and number in shapers)
2016-06-15 19:23:55 +02:00
Badlop
9004608181 Check password with jid:resourceprep when registering account (#996) 2016-06-14 23:35:47 +02:00
Holger Weiss
26bce5dee3 mod_mam: Fix "assume_mam_usage: if_enabled" 2016-06-14 16:40:46 +02:00
Badlop
34cf693231 Recover ec6c58a which was reverted in 100827e (thanks to Alexey Shchepin) 2016-06-10 13:18:32 +02:00
Badlop
4ccc40bce5 push_roster must convert read strings to binaries (#1075) 2016-06-08 21:16:30 +02:00
Badlop
53f3a45803 Recover fix of 907e239 lost in 9deb294 (thanks to Alexey Shchepin) 2016-06-08 19:34:05 +02:00
Badlop
858d880675 Allow again multiple fqdn values in configuration (EJAB-1578) 2016-06-08 19:28:17 +02:00
badlop
a4f213837e Merge pull request #1125 from vthriller/roster-push
mod_roster should probably respect roster item changes introduced with roster_process_item hooks upon pushing
2016-06-08 13:57:52 +02:00
Badlop
5173de503c Produce mod_last entry on account creation (processone/ejabberd-contrib#62) 2016-06-08 13:02:20 +02:00
Badlop
8a7b31ca63 When stopping ejabberd, stop modules after broadcasting c2s shutdown (#1144) 2016-06-07 18:41:38 +02:00
Holger Weiss
78d4200f05 mod_pubsub: Fix node configuration changes for SQL
nodetree_tree_sql:set_node/1 returns {ok, NodeIdx} rather than 'ok' on
success.
2016-06-06 00:18:24 +02:00
Holger Weiss
60803f5780 Simplify check for carbon-copied chat states
Let jlib:is_standalone_chat_state/1 unwrap carbon copies rather than
leaving this to the caller.  We still export jlib:unwrap_carbon/1, as
this function might also be useful for other purposes.
2016-06-05 22:36:56 +02:00
Holger Weiss
5c3074c0fb mod_client_state: Fix handling of chat states
Fix the check for chat states sent from other resources of the same
user.
2016-06-05 22:04:38 +02:00
Holger Weiss
4789ddf1ee mod_client_state: Simplify handling of PEP stanzas
Let mod_client_state simply queue the most recent item of a given PEP
node (from a given contact) instead of also taking the payload namespace
into account.
2016-06-05 21:48:03 +02:00
Holger Weiss
8305cc293b XEP-0352: Pass chat states of other resources
Don't hold back (carbon copies of) chat states from other resources, as
they might be used to sync the state of conversations across clients.
E.g., if one client becomes active, another one might want to remove a
notification (immediately).
2016-06-03 21:52:11 +02:00
Holger Weiss
4d5eab6662 Unwrap carbon copies when checking for chat states
Detect standalone chat states that were carbon-copied.
2016-06-03 20:28:48 +02:00
Holger Weiss
3a1fc6fb66 Ignore <delay/> when checking for chat states
Ignore XEP-0203 elements when checking whether a message stanza is a
standalone chat state.
2016-06-03 19:02:26 +02:00
Holger Weiss
5c1db176a9 Fix "unused variable" warning 2016-06-03 12:58:20 +02:00
Badlop
0503d899cf Fix problem in dfee843 when non-occupant admin kicks an occupant (#1135) 2016-06-03 00:10:25 +02:00
Alexey Shchepin
d201f013b2 Stronger tests in the test suite, SQL updates and fixes 2016-06-02 18:09:58 +03:00
Badlop
5352037680 Report in SQL when scram is enabled but the stored password isn't (#1096) 2016-06-01 20:48:52 +02:00
Holger Weiss
bbb90b9928 Ignore offline sessions
Let mod_admin_extra and mod_configure ignore offline sessions when
querying the session table.
2016-06-01 01:01:54 +02:00
Christophe Romain
e7843bf92b Fix set_presence API 2016-05-31 11:47:08 +02:00
Paweł Chmielowski
fc2b7018cc More strict check for commands with policy user 2016-05-30 23:06:29 +02:00
Paweł Chmielowski
e81302dc79 Allow @ inside acl user{,_glob,_regexp} to pass both user and server in single string 2016-05-30 12:30:44 +02:00
Paweł Chmielowski
1981e13326 Allow passing username and ip to ejabberd_comamnds, and use it in mod_http_api 2016-05-26 11:08:53 +02:00
Paweł Chmielowski
fffae97940 Use acl:access_matches in c2s 2016-05-26 11:08:53 +02:00
Paweł Chmielowski
49658e1655 New ACL infrastructure 2016-05-26 11:08:53 +02:00
Paweł Chmielowski
c55319c81e Do not call transform_terms multiple times on configs when merging them 2016-05-26 11:08:53 +02:00
Badlop
ca329826cb Retrieve parenthesis for easy reading, lost in old commit 9deb294 2016-05-25 12:44:05 +02:00
Evgeny Khramtsov
14b53fbcb0 Merge pull request #1131 from weiss/failed-resume-h
XEP-0198: Indicate number of handled stanzas if resumption fails
2016-05-25 11:56:47 +04:00
Evgeny Khramtsov
b055c2a13a Merge pull request #1126 from weiss/muc-send-affiliation
Notify on MUC affiliation changes of non-occupants
2016-05-25 11:55:06 +04:00
Holger Weiss
c958fa2f06 Add support for PubSub publishing options
Add code necessary to support publishing options as described in
XEP-0060, #7.1.5.  A node plugin that expects publishing options must
add <<"publish-options">> to the features/0 list and then handle the
publishing options handed over to the publish_item/7 call.

Signed-off-by: Christian Ulrich <christian@rechenwerk.net>
2016-05-25 08:40:12 +02:00
Holger Weiss
30e814dd4b XEP-0198: Add 'h' attribute to <failed/> element
If a resume request is rejected because the session timed out, indicate
the number of handled stanzas as per version 1.5 of XEP-0198.
2016-05-24 22:20:58 +02:00
Holger Weiss
8c16fdf59f mod_mam_mnesia: Clarify error message 2016-05-24 07:58:07 +02:00
Holger Weiss
a2f0e157bc ejabberd_auth*: Fix indentation 2016-05-24 00:40:25 +02:00
Holger Weiss
2a9dd548b5 mod_mam_mnesia: Don't exceed table size limit
Don't write MAM messages into an Mnesia archive if the size of the table
comes close to the 2 GB limit for tables with disc-only copies.  That
way, the table is at least not corrupted when the limit is reached.
2016-05-24 00:25:52 +02:00
Holger Weiss
3f3ecad981 mod_mam_mnesia: Use transactions when writing
Let mod_mam_mnesia use transactions when storing or deleting messages.

If old messages of a user are to be removed, delete the user's archive
and rewrite it from scratch, as that seems to be much faster than
removing individual records with delete_object/1.

Closes #1065.
2016-05-24 00:08:23 +02:00
Holger Weiss
70452ba25a mod_register: Only set timeout on success
Don't set the registration timeout if the password was rejected for
being too weak.
2016-05-23 23:27:42 +02:00
Holger Weiss
9d87a4a6d4 mod_muc_room: Notify on affiliation changes
Notify the current room occupants if the affiliation of a non-occupant
is changed as per example 195 of XEP-0045.  In anonymous rooms, only
moderators are notified, though.
2016-05-20 01:28:16 +02:00
vthriller
f6ba91ff97 mod_roster should probably respect roster item changes introduced with roster_process_item hooks upon pushing 2016-05-19 13:45:42 +03:00
Holger Weiss
420ae65590 mod_client_state: Add function specifications
Add function specifications and apply cosmetic changes to
mod_client_state.
2016-05-18 21:30:38 +02:00
Holger Weiss
8f72c27b88 mod_client_state: Add "queue_pep" option
If the new "queue_pep" option is enabled and the client is inactive, PEP
notifications are throttled in a similar way to presence stanzas and
chat states.  Only the most recent notification of a given node and
payload type will be queued from a given contact.
2016-05-17 22:12:04 +02:00
Holger Weiss
4f009e64fc mod_client_state: Queue chat state notifications
Queue standalone chat states instead of simply dropping them when the
client is inactive.  Only the most recent chat state of a given client
is queued.
2016-05-17 20:55:45 +02:00
Holger Weiss
ba74c1c367 Move CSI queue handling into mod_client_state
Let mod_client_state handle the queueing of stanzas, not just their
classification.  This simplifies the ejabberd_c2s code and gives
(custom) CSI modules more flexibility.
2016-05-17 19:27:18 +02:00
Badlop
ba2680df61 Delete duplicated command export_sql, use export2sql instead (#1118) 2016-05-16 17:57:57 +02:00
Tobias Kräntzer
2529acc36c Send unique stanza id and archived tag also in the message carbons
- Change order of the hooks in mod_mam for sending and receiving packets. Messages are archived before a carbon copy is send to the other recourcces.
- Add archived tag and unique stanza id to the outgoing packet to have message carbons with the archive information.
- Add additional hook (in mod_mam) to strip the archive tag for outgoing packets after message carbons have been send.
2016-05-15 20:13:25 +02:00
Holger Weiss
ff199a323d Fix jid:from_string/1 function specification 2016-05-15 16:19:13 +02:00
Alexey Shchepin
792f47b4bd Update SQL escaping 2016-05-13 17:56:48 +03:00
Evgeniy Khramtsov
be2a9e35ae Fix C2S session data leak (#1078) 2016-05-09 14:18:47 +03:00
Evgeniy Khramtsov
068db1a2d9 Handle Redis connection in a separate module 2016-05-09 08:36:30 +03:00
Holger Weiss
4717d64d7a mod_client_state: Delete only the configured hooks 2016-05-08 16:45:31 +02:00
Holger Weiss
f7f40cf9a6 Let client retry HTTP upload on file size mismatch
Let the main mod_http_upload process look at the size of an HTTP upload
rather than performing this check in the ejabberd_http handler.  This
way, the upload slot won't be invalidated if the size of the uploaded
file doesn't match the size requested for the slot.  The PUT request is
still rejected, but the client now has a chance to retry the upload.
2016-05-08 15:36:51 +02:00
Holger Weiss
ff4a0e1808 XEP-0198: Use different error message for bounces
When stanzas are bounced from the stream management queue (because the
session timed out or was closed for some other reason), use a different
error message so that this situation can be distinguished from other
cases.
2016-05-06 14:12:22 +02:00
Holger Weiss
51238bff83 Bounce messages sent to server JID
If a message is sent to the server JID (without node part), generate an
error message rather than dropping the message silently.
2016-05-06 13:59:21 +02:00
Alexey Shchepin
b2ffa1db96 Add missed jlib:term_to_expr and jlib:expr_to_term functions 2016-05-05 16:42:48 +03:00
Alexey Shchepin
0ea0ba3004 Update more SQL queries 2016-05-05 15:51:58 +03:00
Holger Weiss
d6700bdc5b Merge remote-tracking branch 'processone/pr/1088'
* processone/pr/1088:
  Process messages of unknown type consistently
2016-05-05 00:20:15 +02:00
Christophe Romain
13c6430341 Add missing odbc->sql in comment from commit 1aae8a9f 2016-05-04 09:11:18 +02:00
Holger Weiss
12a8d915cd Merge remote-tracking branch 'processone/pr/1087'
* processone/pr/1087:
  Return error when blocking last activity request
2016-05-04 00:16:56 +02:00
Holger Wei
6cb60aaff5 Cosmetic change: Make variable names consistent
Use the same variable names in both mod_mam:select/8 clauses to avoid
confusion.
2016-05-03 19:12:57 +02:00
Holger Weiss
6da07d78b5 Merge remote-tracking branch 'processone/pr/1086'
* processone/pr/1086:
  Return error when blocking message to offline user
2016-05-02 21:08:06 +02:00
Christophe Romain
8a6c51290a Pass noauth when auth isn't provided 2016-05-02 15:07:00 +02:00
Christophe Romain
07196b6c62 Fix sender in case of explicit pep subscriptions 2016-05-02 15:04:14 +02:00
Paweł Chmielowski
53e1100cc4 Don't halt program when include_config_file is missing/can't be read 2016-05-02 14:52:23 +02:00
Evgeniy Khramtsov
47050db6b8 Don't forget to import mod_opt_type/1 in mod_metrics 2016-05-02 12:18:18 +03:00
Holger Weiss
d54f211514 Add mod_opt_type/1 callback to gen_mod behaviour 2016-05-01 22:09:40 +02:00
Holger Weiss
b46ed7044a Cope with modules that don't export mod_opt_type/1 2016-05-01 22:06:15 +02:00
Evgeniy Khramtsov
82082f1799 Add behaviour to mod_vcard_xupdate DB modules 2016-05-01 11:03:20 +03:00
Evgeniy Khramtsov
3493a87469 Fix typo in mod_mam:select() (#1098) 2016-04-30 21:37:18 +03:00
Christophe Romain
6a10916dda Let shaper cope with low resolution system clock
We no longer rely on getting unique values from clock source, so we need
to handle cope with systems which does not have a microsecond resolution
on system clock (such as MS Windows)
2016-04-29 10:57:34 +02:00
Christophe Romain
639c2fb640 Add pubsub subscribe/unsubscribe hook 2016-04-28 15:57:55 +02:00
Evgeniy Khramtsov
c585f74730 Better formatting of configuration problem log message 2016-04-28 09:03:05 +03:00
Evgeniy Khramtsov
9c369b7a8c Improve detection of databases supported by modules (#1092) 2016-04-27 17:10:50 +03:00
Evgeniy Khramtsov
52fde758b3 Get rid of "internal" DB type. This also fixes #1092 2016-04-27 09:44:32 +03:00
Christophe Romain
ef90a389c1 Fix use of pubsub node plugin when configured with default_node_config 2016-04-25 09:44:46 +02:00
Holger Weiss
36164d9446 Return error when blocking last activity request
As per XEP-0016 and XEP-0191, return a service-unavailable error when an
incoming last activity query was blocked by a privacy list (just as we
do for other IQ requests).
2016-04-25 09:33:47 +02:00
Holger Weiss
45321fa2e2 Process messages of unknown type consistently
If an incoming message sent to an unavailable resource has an unknown
type, handle it like messages of type "normal" (as mandated by RFC 6121,
section 5.2.2).  The same is already done for messages of unknown type
sent to the bare JID of an offline user.
2016-04-25 01:13:41 +02:00
Holger Weiss
65ad70d7dc Fix error text for message bounces 2016-04-25 00:53:48 +02:00
Holger Weiss
a37cf33358 Drop headline messages sent to offline resources
Don't bounce an error when a message of type "headline" is sent to an
unavailable resource.  This is consistent with how headline messages
sent to the bare JID of an offline user are dropped, and it avoids a
presence leak.
2016-04-25 00:02:12 +02:00
Holger Weiss
58478e52bf Don't omit bounces for messages of type "result" 2016-04-24 22:47:53 +02:00
Holger Weiss
cebdfb6523 Return error when blocking message to offline user
As per XEP-0016 and XEP-0191, return a service-unavailable error when an
incoming message sent to an offline user was blocked by a privacy list.
The same is done for a message sent to an online user, so this avoids a
presence leak.
2016-04-24 22:00:15 +02:00
Holger Weiss
b79f09d0eb Match namespace when checking for chat states
When checking for standalone chat states, match the namespace rather
than the names of the elements defined in the current XEP-0085 revision.
2016-04-24 17:16:28 +02:00
Holger Weiss
beeb1c82d9 Fix check for standalone chat state notifications
Ignore whitespace (and other XML CDATA) when checking whether a message
stanza is a standalone chat state notification.
2016-04-24 17:09:56 +02:00
badlop
2660dcabba Merge pull request #931 from cclam0827/dev/mod_ping
change mod_ping Timers using maps instead of dict
2016-04-22 13:07:03 +02:00
Holger Weiss
f0e6def3ed Set default value for pubsub#itemreply option 2016-04-21 23:47:07 +02:00
Paweł Chmielowski
97e3a33077 Accept commands: add_commands syntax (along commands: - add_commands) 2016-04-21 11:16:36 +02:00
Evgeniy Khramtsov
1aae8a9fda Rename odbc to sql everywhere 2016-04-20 13:25:42 +03:00
Evgeniy Khramtsov
fafeeb80c2 Rename ejabberd_sm_odbc -> ejabberd_sm_sql 2016-04-20 09:11:02 +03:00
Christophe Romain
655c22021b Fix hometree root check (#1070) 2016-04-19 15:18:32 +02:00
Holger Weiss
382c6ce1fb Specify type of second terminate/2 parameter 2016-04-19 09:15:09 +02:00
Badlop
e5e4f39c01 Remove --auth in ejabberd_ctl.erl as it's useless, still useful for mod_rest 2016-04-15 15:35:57 +02:00
Evgeniy Khramtsov
222572bd56 Clean mod_carboncopy.erl from DB specific code 2016-04-15 15:48:56 +03:00
Evgeniy Khramtsov
fb0ecf3361 Merge branch 'move-db-code' 2016-04-15 15:12:12 +03:00
Evgeniy Khramtsov
52571e8624 Clean mod_mam.erl from DB specific code 2016-04-15 15:11:31 +03:00
Evgeniy Khramtsov
901d2e0aed Clean mod_offline.erl from DB specific code 2016-04-15 13:44:33 +03:00
Evgeniy Khramtsov
860db2ddca Clean mod_blocking.erl from DB specific code 2016-04-14 14:17:20 +03:00
Evgeniy Khramtsov
c8c4a41b66 Clean mod_privacy.erl from DB specific code 2016-04-14 14:16:32 +03:00
Evgeniy Khramtsov
79d64e0d71 Clean mod_irc.erl from DB specific code 2016-04-14 12:18:04 +03:00
Evgeniy Khramtsov
f8e3560ad2 Clean mod_shared_roster.erl from DB specific code 2016-04-14 11:45:43 +03:00
Evgeniy Khramtsov
398f1de5ae Clean mod_roster.erl from DB specific code 2016-04-14 10:58:32 +03:00
Evgeniy Khramtsov
0b439a7d5b Clean mod_muc.erl from DB specific code 2016-04-13 21:07:32 +03:00
Evgeniy Khramtsov
ae69f09257 Clean mod_vcard.erl from DB specific code 2016-04-13 17:37:52 +03:00
Evgeniy Khramtsov
ef70ce65ab Clean mod_private.erl from DB specific code 2016-04-13 14:09:34 +03:00
Evgeniy Khramtsov
b5d1ce795f Clean mod_announce.erl from DB specific code 2016-04-13 13:04:04 +03:00
Evgeniy Khramtsov
cd094bc903 Clean mod_caps.erl from DB specific code 2016-04-13 11:41:04 +03:00
Evgeniy Khramtsov
2d7e03f5e1 Clean mod_vcard_xupdate.erl from DB specific code 2016-04-13 11:06:59 +03:00
Evgeniy Khramtsov
7fd4808cde Clean mod_last.erl from DB specific code 2016-04-13 09:59:39 +03:00
Evgeniy Khramtsov
5eef8a8bcf Make it possible to get DB backend of a module 2016-04-13 09:56:10 +03:00
Mickael Remond
cd2e2b1a88
Synchronizing master changes 2016-04-12 10:34:24 +02:00
Mickael Remond
5958a91428
Fix typo in error message 2016-04-12 10:27:43 +02:00
Holger Weiss
15d184a909 Disable TLS compression for s2s by default
TLS compression is not recommended, and it's already disabled by default
for c2s connections and for ejabberd_http.
2016-04-11 22:50:11 +02:00
Badlop
8c8a6869be process2/2 is needed by mod_rest to provide its own AccessCommands
See processone/ejabberd-contrib#161
2016-04-11 17:21:44 +02:00
Matthias Rieber
b67dc00db2 Fix check_password 2016-04-10 15:37:36 +02:00
Mickael Remond
127342449e
Allow testing user pattern directly in access rules 2016-04-08 19:45:25 +02:00
Paweł Chmielowski
86dfbe6ece Make sure that ejabberd_sm sid are unique 2016-04-08 10:52:29 +02:00
Evgeniy Khramtsov
b83ec483e9 Send stream trailer at the very end 2016-04-08 11:49:50 +03:00
Paweł Chmielowski
afd3accf75 Generate shorted jid for anonymous connections 2016-04-07 16:47:30 +02:00
Paweł Chmielowski
d5c29360fb Fix anonymous auth 2016-04-07 10:02:37 +02:00
Mickael Remond
47039aed15 Allow clearing all ACL and access rules 2016-04-06 18:13:08 +02:00
Mickael Remond
5ad8c790c7 Export add_access/3 to allow setting ACL outside of yaml config file 2016-04-06 18:13:08 +02:00
Badlop
27b4217a9d Tweak srg_get_info result formatting (#1048) 2016-04-06 17:55:19 +02:00
Mickael Remond
abf768274a Fix error message paramater formatting 2016-04-06 15:05:19 +02:00
badlop
d9f1061b8a Merge pull request #1051 from genric/patch-1
Fix mod_muc_admin:set_room_affiliation options persistence
2016-04-06 13:44:12 +02:00
badlop
dd654fa794 Merge pull request #1052 from genric/patch-2
Fix mod_muc_admin:get_room_options
2016-04-06 13:25:46 +02:00
Mickael Remond
67b9b82261 We need to set hosts in options to be able to retrieve 'MYHOSTS' 2016-04-06 12:59:27 +02:00
genric
be7f65da05 Fix mod_muc_admin:get_room_options
Fix mod_muc_admin:get_room_options to match the ejabberd_commands result spec.
2016-04-05 14:13:28 +02:00
Evgeniy Khramtsov
232915184c Merge branch 'add-error-reason' 2016-04-05 13:10:09 +03:00
Evgeniy Khramtsov
9ac6e4edf7 Replace more ?ERR_* macros with ?ERRT_* 2016-04-05 13:09:44 +03:00
genric
490aa2c6a6 Fix mod_muc_admin:set_room_affiliation
Add missing options so they are stored when set_room_affiliation is invoked, instead of being ignored and set to default values after muc restart.
2016-04-04 14:02:34 +02:00
Mickael Remond
e24da5789e Apply fixes and remove tests for missing methods 2016-04-01 13:05:41 +02:00
Mickael Remond
47266de6d7 Do not use underscore variable 2016-04-01 12:24:49 +02:00
Mickael Remond
f243c30847 Rollback mod_admin_extra 2016-04-01 12:24:00 +02:00
Mickael Remond
b5f1479763 Fix tests, they are now running fine locally 2016-04-01 11:13:48 +02:00
Mickael Remond
ef2e2e45b3 Fix failing tests 2016-03-31 17:34:58 +02:00
Mickael Remond
7988e2e350 Merge lastest commits from master 2016-03-31 15:37:21 +02:00
Alexey Shchepin
3dc55c6d47 Commands refactor, first pass.
- add API versionning
- changed error handling, based on exception
- commands moved/merged from mod_admin_p1 to mod_admin_extra
- command bufixes
- add some elixir unit test cases

Squashed commit of the following:

commit dd59855b3486f78a9349756e4f102e79b3accff8
Merge: 14e8ffc 506e08e
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 30 11:43:18 2015 +0100

    Merge branch '3.2.x' into api

commit 14e8ffce78cbea6c8605371d1fc50a0c1d1e012c
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Oct 27 16:35:17 2015 +0100

    Added OAuth tests to ejabberd_commands

commit f81c550c14628edfe4861c228576cb767924366a
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Oct 27 16:34:55 2015 +0100

    Added some mod_http_api tests

commit 6a64578d5b2ba532a2feb6503ed98561e56d5d53
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Mon Oct 26 15:29:36 2015 +0100

    Fix get_last command test

    Previous version won't work with dst.

commit 27e0cde9e9c1f001effe68f8424a365ad947c068
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 23 17:59:34 2015 +0200

    Add tests on admin command policy

commit 19dad8d54f54c9fabd454280483cccfb06c8e78a
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 23 16:49:36 2015 +0200

    Added command related tests (http api & user policy)

commit e0e596ab4a3f3a70aba5f374f028939ab794de33
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 23 16:49:16 2015 +0200

    Fix command call.

commit 128cd7d1ede3c47a34f8ec3a750c980ccad2c61d
Merge: 60c4c4c 447313c
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Thu Oct 22 14:48:39 2015 +0200

    Merge branch '3.2.x' into api

commit 60c4c4c0751302524c14219c6bc8c56a6069a689
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Thu Oct 22 14:45:57 2015 +0200

    Fix ejabberd_commands spec.

commit 8e145c28c5da762c2b93ee32327eff1db94ebfed
Merge: 397273a f13dc94
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 21 18:26:07 2015 +0200

    Merge branch '3.2.x' into api

commit 397273a23ed415feac87aed33da6452229793387
Merge: c30e89b f289e27
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 21 15:27:45 2015 +0200

    Merge branch '3.2.x' into api

commit c30e89bb8a0013bff37e61e4c6953350c9c1f313
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 21 12:47:02 2015 +0200

    Merge mod_http_api

commit 7b0db22b4acd48ff6fabce41c1b2525e6580a3c5
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Oct 16 11:55:48 2015 +0200

    Fix exunit tests to run with common_test suites

commit d8b1a89800ac7379a57a7eb4a09c3c93c3e1e5eb
Merge: 2879ae8 63455b3
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Thu Oct 15 11:39:45 2015 +0200

    Merge branch '3.2.x' into api

commit 2879ae87ff3eee369ef3d780136b96ecff5285d1
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 14 14:53:44 2015 +0200

    Fix update_roster command.

commit a1d453dd7a3afda9861a8d747494a45057ad574b
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Oct 13 16:14:28 2015 +0200

    API commands refactor

    Moving and/or merging commands from mod_admin_p1 to mod_admin_extra

commit b709ed26b0fc0ca4f3bdd5a59fa58ec7e3db97fa
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Wed Oct 7 15:10:01 2015 +0200

    Add tests on commands

commit 6711687bee9c672cb3d5aed0744e13420ecf6dbd
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Sep 29 15:58:16 2015 +0200

    Add ejabberd_commands tests

commit df8682f419cf3877e77e36a19bca0fc55dc991f8
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Mon Sep 28 14:54:39 2015 +0200

    Added API versioning for ejabberdctl and rest commands

commit cd017b0e3aac431bc3ee807ceb7f8641e1523ef5
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Fri Sep 18 11:21:45 2015 +0200

    Better error handling of HTTP API commands.

commit ca5cb6acd8e4643f9d6c484d2277b0d7e88471e5
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Sep 15 15:03:05 2015 +0200

    add commands to mod_admin_extra:
    - get_offline_count
    - get_presence
    - change_password

commit 7f583fa099e30ac2b0915669fd8f102ac565b833
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Tue Sep 15 15:02:16 2015 +0200

    Improve REST API error handling

commit 14753b1c02cdce434a786b7f80f6c09f0d210075
Author: Jerome Sautret <jerome.sautret@process-one.net>
Date:   Mon Sep 14 10:51:17 2015 +0200

    Change REST API return codes for integer type.
2016-03-31 14:53:31 +03:00
Mickaël Rémond
7c2998a55d Merge pull request #1044 from processone/http-api
Add ability to call open ejabberd commands through ReST API
2016-03-31 11:37:14 +02:00
Evgeniy Khramtsov
fced8dc3d9 Replace some ?ERR_* macros with ?ERRT_* 2016-03-31 11:00:29 +03:00
Mickael Remond
3c480a5b0b Fix Dialyzer inconsistency 2016-03-30 16:47:40 +02:00
Paweł Chmielowski
b160bd7ac1 Provide authzid in scream response 2016-03-30 16:08:04 +02:00
Mickael Remond
809057678b Better error report when command is not exposed through API 2016-03-30 15:59:29 +02:00
Mickael Remond
36ac1cd6c7 Returns unauthorized error when we do not have correct credentials 2016-03-30 14:49:19 +02:00
Mickael Remond
ead83b008c HTTP ReST API now supports 'open' ejabberd commands 2016-03-30 14:23:09 +02:00
Mickael Remond
82cf7f7ca8 Adds support for option admin_ip_access on mod_http_api
This allows granting access to admin commands to backend, by using IP address restrictions.
(Pawel Chmielowski)
2016-03-29 19:40:20 +02:00
Badlop
78a44d8099 Move start and stop_modules/0 from ejabberd_app to gen_mod (#1039) 2016-03-29 15:26:34 +02:00
Mickael Remond
b49a615e21 Fix commands api option 2016-03-29 13:19:16 +02:00
Mickael Remond
3b2d0fd24a Fix commands access check.
Fixes ECS-20
2016-03-29 13:06:13 +02:00
Mickael Remond
aa15148898 Fix commands access check. 2016-03-29 13:05:12 +02:00
Badlop
3809b898aa Pass noauth when auth isn't provided, reverts a1129dc (processone/ejabberd-contrib#159) 2016-03-29 12:51:26 +02:00
Mickael Remond
221d8e0e5d Merge branch 'master' of github.com:processone/ejabberd 2016-03-29 11:21:58 +02:00
Mickael Remond
53d12caa56 Fix log printout
Log is not only called for admin commands. It is call for all commands call.
2016-03-29 11:21:53 +02:00
Evgeniy Khramtsov
7a9e93839a Fix some LIMIT related problems with MSSQL 2016-03-29 11:34:00 +03:00
Mickaël Rémond
4afe0b195c Merge pull request #1036 from processone/shared-roster-ldap
Fix issue getting shared roster
2016-03-25 19:36:10 +01:00
Evgeny Khramtsov
915ccbbdfb Merge pull request #684 from wcy123/master
bug fix: ejabberd:start_app need to pass Type to application:start
2016-03-25 21:00:35 +04:00
Mickael Remond
381065397f Fix issue getting shared roster
I rollbacked to correct version and slightly refactored the code
2016-03-25 17:44:12 +01:00
Evgeniy Khramtsov
46568fb959 Merge commit 'refs/pull/524/head' of github.com:processone/ejabberd into sasl-api-change 2016-03-25 18:16:50 +03:00
Mickael Remond
a3a33bd5fc Allow running test groups independently
We need to be able to run only a few test groups, even if we do not have all
database backends installed and configured locally.

ejabberd test suite configures a specific host per backend. I changed ejabberd
to allow ignoring some hosts from config file on start, by providing the exact
list of hosts we want to start.

This is done by setting an ejabberd app Erlang environment variable 'hosts' and
passing the list of hosts we want to actually define.

When doing so, the backend specific hosts defined in ejabberd test configuration file
are simply ignored. As a result, we do not try to connect to unavailable backends.

I linked that part to CT run test by defining the hosts list based on environment variable
CT_BACKENDS. This variable is expected to be a comma separated list of available backends.

When Erlang Common Tests are run with that environment variable set, only the host matching
the name of the backend will be set, plus the default "localhost", common to many tests.

This can be combined with rebar ct groups list.

Example commands to run tests:
CT_BACKENDS=riak,mnesia rebar ct suites=ejabberd
CT_BACKENDS=mnesia rebar ct suites=ejabberd groups=mnesia
2016-03-24 10:02:13 +01:00
Evgeniy Khramtsov
cb27a3540e Fix is_connected/0 function 2016-03-22 20:01:23 +03:00
Evgeniy Khramtsov
61e914a83f Keep alive Riak connections by default 2016-03-22 19:32:30 +03:00
Evgeniy Khramtsov
57f7b34b90 Do not auto append IP suffix to usernames (#1008) 2016-03-22 13:25:34 +03:00
Badlop
e7ef65a22d Improve ban_account command to work with other DBs than Mnesia (#977) 2016-03-21 18:30:05 +01:00
Badlop
107569a17d New command delete_mnesia deletes all tables that can be exported 2016-03-21 16:19:06 +01:00
Mickael Remond
31c194a682 Add simple Elixir unit test on jid:from_string 2016-03-21 09:44:23 +01:00
HAMANO Tsukasa
2d103b4ae1 support riak authentication 2016-03-19 01:41:14 +09:00
Paweł Chmielowski
ef02053a9d Fix issue #1015 2016-03-17 18:41:39 +01:00
Paweł Chmielowski
7b72247b2c Don't use jlib:jid_remove_resource 2016-03-16 13:32:19 +01:00
Paweł Chmielowski
34bc698526 Merge pull request #1011 from oxoWrk/master
Bare JID in 'from' of Roster Push (RFC 6121 section 2.1.6) in mod_adm…
2016-03-16 11:37:25 +01:00
Paweł Chmielowski
efbaba5d04 Make auto generated resources shorter 2016-03-16 11:30:45 +01:00
Badlop
c985a2bd3d Start ezlib only if required, as it's optional (#1006) 2016-03-16 11:11:43 +01:00
root
058b3d96bf Bare JID in 'from' of Roster Push (RFC 6121 section 2.1.6) in mod_admin_extra 2016-03-15 10:57:56 +05:00
Evgeny Khramtsov
dcefb6bbe3 Merge pull request #980 from sharewax/EJAB-1480
EJAB-1480: fix issue with retreiving user roster
2016-03-14 17:49:01 +03:00
Badlop
5351e8236d Fix Addresses element which lacked others local destinations
When sending single packet, in addresses include all other group
destinations, not only oneself
2016-03-14 12:53:14 +01:00
Holger Weiss
b871fbba1b Fix result type of "connected_users_info" command
Closes #1002.
2016-03-14 00:51:12 +01:00
Holger Weiss
91573a8e82 Don't store watchdog notifications in MAM archives 2016-03-14 00:05:50 +01:00
Evgeniy Khramtsov
55c567ff00 Unregister route at the very end 2016-03-13 17:37:39 +03:00
Evgeniy Khramtsov
5a4b7817df Add ODBC backend for MIX 2016-03-13 15:38:50 +03:00
Evgeniy Khramtsov
5045fb584d Define pubsub node configuration per route/host explicitly 2016-03-13 13:16:43 +03:00
Evgeniy Khramtsov
357e48fb6b Make it possible to get virtual host of a registered route 2016-03-13 11:38:40 +03:00
Christophe Romain
9297782868 Fix config fetch after host/serverhost cleanup 2016-03-11 17:25:46 +01:00
Elias Rohrer
8b03c0a385 Minimal auth_method ordering fix 2016-03-10 17:52:55 +01:00
Mickael Remond
92a0181932 Lager to Elixir Logger bridge is now compliant with ejabberd loglevel set / get
This should fix #966
2016-03-09 22:30:46 +01:00
Mickael Remond
035c63fd2a Fix call to lager_util:is_loggable/3 2016-03-09 21:03:06 +01:00
Mickael Remond
9e6efaf9bc Use p1_time_compat util for generating timestamp 2016-03-09 20:57:01 +01:00
Mickael Remond
f4ee8a2505 Add Elixir Logger Backend to bridge logs from lager
We will need to support loglevel bridging.
It should help with #966
2016-03-09 19:12:56 +01:00
Evgeniy Khramtsov
e31799a3b1 Define mod_opt_type/1 callback 2016-03-09 11:19:15 +03:00
Evgeniy Khramtsov
1860801e36 Unregister hooks and iq handlers on terminate 2016-03-09 11:14:45 +03:00
Holger Weiss
ae4fa22180 mod_http_upload: Add XEP-0363 v0.2 support
Include the maximum file size in the service discovery information, as
specified by XEP-0363, version 0.2.
2016-03-09 00:27:06 +01:00
Evgeniy Khramtsov
b5121a346d Experimental MIX (XEP-0369) support 2016-03-08 20:04:29 +03:00
badlop
6e40573c13 Merge pull request #989 from galambalazs/patch-1
fix syntax highlighting by keeping "~s" together
2016-03-07 19:06:59 +01:00
badlop
eb0890284a Merge pull request #988 from tnull/edoc_fix
Fixed type specifications for 'rebar doc'
2016-03-07 18:44:05 +01:00
Badlop
16c1b9a5c2 Fix format_result also in xmlrpc, after aa5caa3 (#982) 2016-03-07 17:34:08 +01:00
Balázs Galambosi
83accedded fix syntax highlighting by keeping "~s" together 2016-03-07 16:06:18 +01:00
Elias Rohrer
8e6a301026 Fixed type specifications for 'rebar doc'
- Fixed type @specs and -specs to remove 'rebar doc' errors
- Removed a lot of wrong and deprecated documentation in ejabberd_piefxis.erl
2016-03-07 15:06:19 +01:00
Anton Samets
4013629e5d EJAB-1480: fix issue with retreiving user roster 2016-03-04 15:52:38 +03:00
Paweł Chmielowski
6e14a47316 Define opt_type required be ejabberd_config behaviour. 2016-03-04 11:45:18 +01:00
Badlop
9c3d57e63e Mark get_queue_length obsolete, and use count_offline_messages (#970) 2016-03-04 11:09:14 +01:00
Christophe Romain
44978ce978 ext_mod: switch to fast_xml and remove old p1_logger reference 2016-03-03 15:46:15 +01:00
Christophe Romain
10d6c330a5 Fix pubsub disco after host/serverhost cleanup 2016-03-03 14:52:03 +01:00
Evgeniy Khramtsov
e95cf420a2 Enable flexible offline on disco#info as well 2016-03-03 14:10:40 +03:00
Alexey Shchepin
79853ad44f Missed a few calls in previous commits 2016-03-02 02:00:02 +03:00
Alexey Shchepin
9a049442ff Raise an error when there are no fields to set in ?SQL_UPSERT 2016-03-02 00:12:49 +03:00
Alexey Shchepin
e21f25f5b9 Update more SQL queries 2016-03-02 00:12:49 +03:00
Alexey Shchepin
1f9fd25ff8 Update more SQL queries 2016-03-02 00:12:49 +03:00
Alexey Shchepin
d8fbe8a289 Update more SQL queries 2016-03-02 00:12:49 +03:00
Alexey Shchepin
6d7ce0237a Update mod_last SQL queries to the new API 2016-03-02 00:12:49 +03:00
Alexey Shchepin
2d042f078e New parse transform for ?SQL_UPSERT and ?SQL_UPSERT_T 2016-03-02 00:12:49 +03:00
Alexey Shchepin
3d8219d8f9 Update mod_roster and ejabberd_auth_odbc SQL queries to the new API 2016-03-02 00:12:49 +03:00
Alexey Shchepin
7f3bffe821 Allow balanced expressions inside @(...) in ejabberd_sql_pt 2016-03-02 00:12:49 +03:00
Alexey Shchepin
99255631dd Updated some mod_offline SQL queries to the new API 2016-03-02 00:12:11 +03:00
Alexey Shchepin
ba35c1ed9d Use 'any' to match any DBMS in sql_query 2016-03-01 22:50:20 +03:00
Alexey Shchepin
437e768e4a Better error handling in ejabberd_sql_pt 2016-03-01 22:50:07 +03:00
Alexey Shchepin
c58a4be6ee Support for run-time SQL queries selection depending on DBMS version 2016-03-01 22:49:56 +03:00
Alexey Shchepin
6374ef4866 New parse transform for SQL queries, use prepare/execute calls with Postgres 2016-03-01 22:48:30 +03:00
Evgeniy Khramtsov
382c7c21ad Do not call to deprected/undefined functions from mod_shared_roster_ldap 2016-02-29 16:35:45 +03:00
Holger Weiss
6d8c7232d8 mod_register_web: Choose the right error messages 2016-02-29 00:39:57 +01:00
Evgeniy Khramtsov
6b126171da Improve LDAP shared roster support (EJAB-1480) 2016-02-26 17:27:12 +03:00
Christophe Romain
56523784e1 Implementation of pubsub#itemreply (EJAB-1347)(#928) 2016-02-26 10:32:03 +01:00
Christophe Romain
1c6d20924b Fix host/serverhost usage (#902) 2016-02-26 09:33:07 +01:00
Marek Foss
ebaf750a9b Fix for #935 2016-02-25 18:56:43 +01:00
Paweł Chmielowski
a9de13c5d9 Don't include empty line after java example 2016-02-25 12:14:17 +01:00
Christophe Romain
576c10ee3a Make caps warning less confusing (#955) 2016-02-23 14:14:24 +01:00
Holger Weiss
44f581c3b5 mod_http_upload: Also expand @HOST@ in 'docroot'
In some environments, it might be desirable to use separate document
roots for each virtual host.
2016-02-20 20:13:30 +01:00
Holger Weiss
b971449f12 mod_http_upload: Expand 'docroot' before using it
Expand the @HOME@ keyword within the 'docroot' value before setting the
permissions of the document root directory.
2016-02-20 18:21:38 +01:00
Holger Weiss
5b4aefbacd Accept stream compression request after SASL
This is an updated version of the patch submitted to EJAB-1382 by
Alexey (thanks!).
2016-02-19 18:53:28 +01:00
Evgeniy Khramtsov
4b0860e7de Make it possible to define 'sm_db_type' per virtual host 2016-02-19 16:38:43 +03:00
Badlop
eece6e69cb Fix format_result so get_room_options command works again after aa5caa3 2016-02-17 20:43:35 +01:00
badlop
c9c59f00ad Merge pull request #953 from cdroege/fix_css
Fix the color of links in tables in web admin
2016-02-15 12:52:54 +01:00
Paweł Chmielowski
47a67c7320 Allow to pass \n in argument to ejabberdctl 2016-02-12 23:38:39 +01:00
Christian Dröge
c579313821 Fix the color of links in tables in web admin 2016-02-12 18:45:45 +01:00
Holger Weiss
eaaab45c14 mod_muc_room: Let members see admin/owner JIDs
Let members retrieve all affiliation lists in non-anonymous rooms, not
just the list of members.
2016-02-11 22:52:27 +01:00
Holger Weiss
041e886b87 mod_muc_room: Don't expose JIDs in anonymous rooms
Don't let room members retrieve the member list unless the room is
non-anonymous.
2016-02-11 22:24:14 +01:00
Holger Weiss
17be70339c mod_mam: Send new preferences when they are set
If a client updates the archiving preferences, include the new
preferences with the IQ result (as mandated by XEP-0313).
2016-02-10 23:06:31 +01:00
Badlop
02a519a11e Mention new XEP support 2016-02-08 21:35:46 +01:00
Badlop
1de085ec23 Prepare room JID in create_room command 2016-02-08 21:35:26 +01:00
Paweł Chmielowski
217b6da5fd Fix example value for rescode return type 2016-02-09 16:44:57 +01:00
Paweł Chmielowski
d5b3e6af00 More documentation of arguments in mod_admin_extra 2016-02-09 16:33:32 +01:00
Evgeniy Khramtsov
4839ba5ae4 XEP-0013: Flexible Offline Message Retrieval support 2016-02-09 17:59:54 +03:00
Paweł Chmielowski
2bca8d5121 Remove remanants of pre-binary strings 2016-02-09 15:50:35 +01:00
Christophe Romain
583476380a Use muc_online_room record for pattern matching 2016-02-09 15:33:00 +01:00
Paweł Chmielowski
c0da9b43ce Better presentation of result description in docs 2016-02-09 13:18:01 +01:00
Paweł Chmielowski
30d171e79e Start documenting arguments in mod_admin_extra commands 2016-02-09 13:03:40 +01:00
Paweł Chmielowski
d36c351fc7 Typo in markdown generator 2016-02-09 13:03:40 +01:00
Holger Weiss
10ed4a1c85 Add most status codes only to initial MUC presence 2016-02-08 20:10:20 +01:00
Badlop
04a315eb52 Fix section links to the Guide in the WebAdmin 2016-02-08 16:16:53 +01:00
badlop
cf2f80bd09 Merge pull request #944 from cdroege/configureable_host-mod_register_web
Allow to modify host when deleting account or changing password over web
2016-02-08 13:48:11 +01:00
Evgeny Khramtsov
2bfb619d19 Merge pull request #914 from weiss/mam-expose-jid
Expose occupant JID in MUC MAM messages whenever possible
2016-02-08 14:23:19 +03:00
Mickael Remond
0b1620a45c Remove compile warnings 2016-02-08 10:50:28 +01:00
Holger Weiss
bf49c292f8 Omit redundant check for overcrowded MUC room
The send_update_presence/4 function already checked whether the room is
overcrowded before calling send_update_presence1/4, so there's no need
to have send_new_presence/4 perform the same check.
2016-02-08 00:46:33 +01:00
Holger Weiss
8098f7d9a8 mod_mam: Don't let outcasts access MUC archive
XEP-0313 says: "A MUC archive MUST check that the user requesting the
archive has the right to enter it at the time of the query [...].  In
the case of open MUC rooms, the MUC archives can generally be accessed
by any users [...] who do not have an affiliation of 'outcast'".
2016-02-08 00:16:02 +01:00
Holger Weiss
a31f59ea31 XEP-0198: Fix session timeout corner case
If the "resend_on_timeout" option is set to 'if_offline' and a pending
stream management session is terminated because a new session is opened
by the same resource (while no other resource is online), resend
unacknowledged messages rather than bouncing error messages.
2016-02-06 22:28:55 +01:00
Badlop
7435ee464f Rename option to regexp_room_id for consistency with other options (#905) 2016-02-05 12:09:27 +01:00
HAMANO Tsukasa
268f0b30ec add room_id_regexp option 2016-02-05 12:09:18 +01:00
Christian Dröge
30388fa2bf Allow to modify host when deleting account or changing password over web 2016-02-04 21:31:16 +01:00
Pablo Polvorin
942072cf9d Make hibernate timeouts configurable
Two *global* options added:
c2s_hibernate and receiver_hibernate.

Default if not specified is 90000, the previous hardcoded value.
2016-02-04 15:45:29 -03:00
Mickael Remond
dfc29ea03c Switch to Fast XML module 2016-02-03 19:03:17 +01:00
Mickael Remond
71ee0d56fa Switch to fast_tls and update app names 2016-02-03 16:13:16 +01:00
Mickael Remond
9ae1371c6e Convert more dependencies to new repository / packages 2016-02-03 12:30:12 +01:00
Mickael Remond
0de222d998 Convert code to use Fast YAML 2016-02-03 11:30:48 +01:00
Mickael Remond
b137ee3beb Move to new dependencies for SIP and STUN 2016-02-03 11:26:14 +01:00
Mickael Remond
99b5c5712c Move to new iconv package 2016-02-03 11:17:24 +01:00
Mickael Remond
e8ba7bce24 Use stringprep app name 2016-02-03 10:12:25 +01:00
Nathan Bruning
80fc34fb0c Fix presence-based delivery 2016-02-02 14:06:07 +01:00
Paweł Chmielowski
fa55ac5c8f More strict checking for MUC initial presence 2016-02-01 12:09:58 +01:00
Paweł Chmielowski
dc52ec904c Send presence with code 170 only in initial presence from MUC 2016-02-01 11:30:49 +01:00
Evgeniy Khramtsov
d3ee2a9c18 Add 'import_prosody' command 2016-01-29 14:30:50 +03:00
Evgeniy Khramtsov
54dc2f56c6 Import privacy lists from Prosody 2016-01-29 14:14:08 +03:00
Richard
ae77b1300a change mod_ping Timers using maps instead of dict 2016-01-29 00:07:38 +08:00
Evgeniy Khramtsov
b20db3b736 Initial version of migration script from Prosody to ejabberd 2016-01-28 14:23:51 +03:00
Paweł Chmielowski
aaa84dc118 Need extra line before ## in markdown 2016-01-27 11:42:13 +01:00
Paweł Chmielowski
239b1c6f74 Always use lagger 2016-01-26 14:34:58 +01:00
Christophe Romain
b2c6e397fc Set set utf8mb4 charset on mysql connection 2016-01-26 13:47:24 +01:00
Paweł Chmielowski
621dff7307 Add header to generated markdown file 2016-01-26 10:46:38 +01:00
Paweł Chmielowski
bdeb4a7e32 Add a way to get all ejabberd_commands, not only those that was registered
This is part of (TECH-1828).
2016-01-26 10:00:28 +01:00
Paweł Chmielowski
22696e8388 Geenarte markdown that is acceptable by docs.ejabberd.org processor 2016-01-25 16:51:54 +01:00
Paweł Chmielowski
a2a692d081 Merge pull request #919 from hamano/rename_timestamp_function
rename timestamp function #917
2016-01-24 07:51:25 +01:00
Mickael Remond
a3931e6b73 lager is the default logger, we need to reverse the define flag 2016-01-23 18:43:06 +01:00
HAMANO Tsukasa
5a85b0fb52 rename timestamp function #917 2016-01-23 17:58:10 +09:00
Holger Weiss
b62607037a mod_mam: Expose MUC occupant JID in more cases
Include the occupant JID with MUC MAM messages if the room is not
anonymous, and also when the MAM user sent the MUC message himself (not
just in the case where he is a room moderator).
2016-01-20 00:02:40 +01:00
Christophe Romain
2ddbd032ee Add error handling to send_stanza 2016-01-19 16:16:04 +01:00
Holger Weiss
5e4ed4266d mod_mam: Strip existing JID tags from MUC messages
Strip any pre-existing <x/> tags which have an <item/> child with a
'jid' attribute from MUC MAM messages.  This way, if such a tag exists,
clients can be sure it was added by mod_mam.
2016-01-19 00:39:10 +01:00
Alexey Shchepin
a150bf8fdc Make C2S session establishment optional (ECS-11) 2016-01-18 16:33:57 +03:00
Holger Weiss
bd383fb8c1 mod_mam: Remove unused code
This mod_mam version doesn't store groupchat messages in user archives,
and it also doesn't support the "store_body_only" option.
2016-01-18 13:27:29 +01:00
Holger Weiss
63777f830d Use maps instead of dicts in HTTP upload modules
ejabberd currently depends on Erlang/OTP 17.1 or higher, so we can now
use maps.
2016-01-16 01:30:22 +01:00
badlop
6ac839dd76 Merge pull request #906 from hamano/stats_processes
add stats processes command
2016-01-15 19:26:23 +01:00
Evgeniy Khramtsov
a83c5a8f3a Do not redefine records 2016-01-15 15:44:50 +03:00
Evgeniy Khramtsov
1d452c98c1 Describe option type of 'domain_balancing' 2016-01-15 14:32:10 +03:00
Holger Weiss
ddaa409ee2 XEP-0198: Let MAM take care of pending messages
If a stream management session times out for a user who appears to be
using MAM, drop any unacknowledged messages rather than resending or
bouncing them.  This avoids duplicates or bogus error messages.

However, this is only done if the new mod_mam option "assume_mam_usage"
is set to 'if_enabled' or 'on_request'.  In the former case, a user is
assumed to be using MAM if archiving is enabled for his account.  In the
latter case, MAM usage is assumed only if archiving was explicitly
requested by the client, or if archiving was enabled by means of
mod_mam's "request_activates_archiving" option.
2016-01-15 01:08:22 +01:00
HAMANO Tsukasa
6cb1905f7c add stats processes command 2016-01-15 00:27:15 +09:00
Holger Weiss
db04cdf2ca mod_mam: Sort messages returned by Mnesia
Sort the messages retrieved from an Mnesia archive before selecting the
subset limited by the <max/> value.  This makes sure the desired subset
of messages is sent to the client.
2016-01-14 02:27:02 +01:00
Holger Weiss
58c8fc5770 mod_mam: Limit result set page size
If the client doesn't specify a maximum number of messages to retrieve
per page, set a limit of 50 messages.  If the client specifies a limit
larger than 250, cap the number to 250 messages.

These limits aren't enforced for MAM v0.2 requests though, as that
version of the XEP doesn't require clients to support RSM.  The newer
revisions say that "a server MAY place a reasonable limit on how many
stanzas may be pushed to a client in one request.  Whether or not the
client query included a <set/> element, the server MAY simply return its
limited results, modifying the <set/> element it returns appropriately."
2016-01-14 02:12:28 +01:00
Holger Weiss
35ec0d58a4 mod_mam: Reject <index/>-based paging
If an <index/> is specified in the MAM request, reject the request
rather than ignoring the desired index and returning wrong results.
XEP-0059 says that the server "MAY return a <feature-not-implemented/>
error."
2016-01-14 01:39:19 +01:00
Holger Weiss
11afa45646 mod_mam: Remove unused variable 2016-01-14 01:15:11 +01:00
Holger Weiss
89f63a4fdf mod_mam: Check whether MUC message is desired 2016-01-14 01:13:16 +01:00
Holger Weiss
85f4f90b45 mod_mam: Support XEP-0313 v0.2 MUC archive queries 2016-01-14 00:58:48 +01:00
Holger Weiss
8117092e6a mod_mam: Respond to form requests
If the client requests a data form with the supported filters, return it
as per XEP-0313 v0.3 and newer.
2016-01-13 23:56:05 +01:00
Holger Weiss
89b1700279 mod_mam: Add 'from' attribute to <delay/> tag 2016-01-13 23:17:23 +01:00
Holger Weiss
9cd048c442 mod_mam: Improve binary comparison of message UIDs
Make sure the binary comparison performed when clients use message UIDs
to page through Mnesia archives yields correct results even if the
specified UIDs don't have the same number of digits as the UIDs of the
stored messages.  This way, MAM will continue to work as expected after
migrating from mod_mam_mnesia to mod_mam.
2016-01-13 23:01:51 +01:00
Holger Weiss
3dccc20d8b mod_mam: Add "delete_old_mam_messages" command
The new "delete_old_mam_messages" command allows for purging all MAM
messages of the specified type older than the specified number of days.
(Currently only implemented for Mnesia archives.)
2016-01-13 22:46:30 +01:00
Holger Weiss
a61b0c303d mod_mam: Add "request_activates_archiving" option
Enabling "request_activates_archiving" tells mod_mam not to store any
messages for a user until his client issued a MAM request, regardless of
mod_mam's "default" option.  Once a MAM request is issued, messages are
archived as usual.
2016-01-13 21:38:08 +01:00
Holger Weiss
0183b2487e Advertise MUC MAM v0.4.1 in room JID's disco#info 2016-01-13 20:30:44 +01:00
Badlop
f448ff608a Update copyright to 2016 (#901) 2016-01-13 12:29:14 +01:00
Evgeniy Khramtsov
fd3e3a99c5 Log failed SQL requests 2016-01-13 14:13:32 +03:00
Evgeniy Khramtsov
776fe8b32a Fix MAM MUC for v0.4.1 2016-01-13 11:45:08 +03:00
Holger Wei
64d96778b4 Don't return error for blocked MUC messages
If a message stanza is blocked as per XEP-0016 or XEP-0191, return an
error only if the type of the blocked message is "normal" or "chat".
This makes sure users won't be kicked from MUC rooms when blocking other
participants.

Closes #897.
2016-01-12 10:20:35 +01:00
Holger Weiss
3e1425b905 Merge remote-tracking branch 'processone/pr/899'
* processone/pr/899:
  mod_http_upload: Use application/octet-stream instead of text/html for security reasons
2016-01-11 12:38:51 +01:00
Evgeniy Khramtsov
65e6dfb9dd Do not fail on incorrect data coming from SQL (898) 2016-01-11 14:35:11 +03:00
Evgeniy Khramtsov
c7931b4a4f CVE-2016-1232: Add Dialback Key Generation and Validation support (XEP-0185) 2016-01-11 14:22:17 +03:00
Matthias Rieber
0ad0fd2187 mod_http_upload: Use application/octet-stream instead of text/html for security reasons 2016-01-11 12:13:19 +01:00
Badlop
c7b67ff00b Clarify a little more room error string (thanks to Genghis Khan) 2016-01-08 13:14:40 +01:00
Holger Weiss
e1539a11be mod_http_upload: Use full PUT URL for process name
Don't just use the "put_url" domain name, but also any path components
of the specified URL, to generate a mod_http_upload process name.  This
way, a single domain name can be used for multiple virtual hosts by
specifying a "put_url" such as "https://example.com/@HOST@/".
2016-01-06 00:12:36 +01:00
Holger Weiss
3f5a20c90a mod_http_upload: Rename variable for clarity 2016-01-05 22:06:34 +01:00
Badlop
c01e3f24a5 Error converting times in mod_fail2ban (#889) 2016-01-05 12:29:21 +01:00
Paweł Chmielowski
da45a064a8 Fix handling of some options in old style configs
This fixes issue #893.
2016-01-04 22:06:19 +01:00
Alexey Shchepin
fb8a511365 Use crypto:rand_uniform instead of random:uniform 2016-01-04 13:59:37 +03:00
Holger Weiss
94c620cc27 mod_http_upload: Fix logging of file size mismatch 2016-01-04 01:01:14 +01:00
Holger Weiss
5deb6a91f7 mod_admin_extra: Replace deprecated function calls 2016-01-02 21:27:48 +01:00
Holger Weiss
b73678992b mod_muc_admin: Allow for setting MAM option
Fixes #890.
2016-01-02 20:57:01 +01:00
Badlop
91d205715e New send_stanza command (ejabberd_contrib#142) 2015-12-30 12:53:40 +01:00
Holger Weiss
1d2dc6cdc1 mod_muc_room: Replace deprecated function call 2015-12-29 11:11:50 +01:00
Holger Weiss
4cdb30d59e mod_mam: Use <stanza-id/> tags for deduplication
Use <stanza-id/> elements instead of <delay/> tags to check for messages
resent by the stream management code.  The <stanza-id/> element is
preferable, as it is added by mod_mam itself.
2015-12-29 09:54:48 +01:00
Badlop
0df6d7ae39 Improve explanation in registration page (#876) 2015-12-28 15:08:59 +01:00
Paweł Chmielowski
a18a3dfbb1 Add commands for generating html or markdown documentation for commands 2015-12-28 12:20:06 +01:00
Evgeniy Khramtsov
babb484cfc Restrict access to MAM archives for members-only rooms 2015-12-24 15:04:06 +03:00
Badlop
c42e026f9c Degenderise room error message (#747) 2015-12-23 19:34:23 +01:00
Holger Weiss
8cf0d31ee9 Revert "mod_mam: Keep 'to' attribute for MUC MAM messages"
This reverts commit 0e330da2a6.  XEP-0313
says: "When sending out the archives to a requesting client, the 'to' of
the forwarded stanza MUST be empty".
2015-12-22 13:20:23 +01:00
Paweł Chmielowski
cfe0aea219 Use built-in nif for integer_to_binary/binary_to_integer 2015-12-22 11:49:12 +01:00
Badlop
88c9991f90 Adding WEBIRC, custom realname & ident, ISO-8859-15 (thanks to iwalkalone69)(#877) 2015-12-21 16:20:20 +01:00
Alexey Shchepin
d88d5d6807 Support presence_broadcast in default_room_options mod_muc option 2015-12-21 02:25:31 +03:00
Holger Weiss
2d22507636 ejabberd_http: Cope with large POST/PUT requests
gen_tcp returns 'enomem' if we try to receive more than 64 MiB.
2015-12-20 23:30:11 +01:00
Holger Weiss
d039b9b72b ejabberd_http: Log debug message on receive errors 2015-12-20 23:26:57 +01:00
Christophe Romain
bb5a8a42c3 Fix pubsub virtual nodetree plugin 2015-12-17 10:16:17 +01:00
Christophe Romain
6957e892dd Fix last item message type as message attribute 2015-12-16 17:04:45 +01:00
Christophe Romain
c8986ffa5e Use correct notification_type for last items (#827) 2015-12-16 16:19:35 +01:00
Alexey Shchepin
c6798fc515 Add accept_interval option in ejabberd_listener 2015-12-16 17:26:44 +03:00
Christophe Romain
08b0530164 Don't read pubsub options when plugin does not use them
This also revert commit 6052f7b
2015-12-16 12:56:06 +01:00
Holger Weiss
5fd1aa0d04 Advertise MAM in disco info for account/room JID
As per XEP-0313 version 0.2 and newer, advertise the MAM feature in the
service discovery information for the bare account (or MUC room) JID.

Some clients check the server's discovery information instead, so we'll
continue to advertise the feature there as well.
2015-12-16 00:08:23 +01:00
Holger Weiss
11ad96fced Use MUC domain for 'by' attribute of <stanza-id/>
Let mod_mam specify only the domain part of the room JID in the 'by'
attribute of <stanza-id/> tags.
2015-12-15 21:37:41 +01:00
Holger Weiss
0e330da2a6 mod_mam: Keep 'to' attribute for MUC MAM messages 2015-12-15 21:05:04 +01:00
Christophe Romain
6efdf78ce3 PubSub plugin for online users only 2015-12-15 16:23:04 +01:00
Christophe Romain
3b69d26368 Fix pubsub headers 2015-12-15 16:12:20 +01:00
Paweł Chmielowski
6052f7bfa8 Fix pubsub test error 2015-12-14 10:21:23 +01:00
Christophe Romain
e3005f68e7 Remove undefined macro injected in 3bdd5d0d 2015-12-11 15:33:22 +01:00
Christophe Romain
8ee5f9fb6f Remove http supervisors 2015-12-11 14:13:24 +01:00
Christophe Romain
3bdd5d0d25 Remove receiver's supervisor 2015-12-11 14:11:44 +01:00
Christophe Romain
1a32f20c07 Disable use of multi-subscribe and subscription-option on standard plugins 2015-12-11 12:46:49 +01:00
Christophe Romain
6357ea1d5d Limit number of subscriptions per node and allow custom default node configuration 2015-12-11 12:46:44 +01:00
Christophe Romain
86a8606fd1 Virtual nodetree is not attached to any backend 2015-12-11 12:46:40 +01:00
Christophe Romain
c4943cffe8 Follow pubsub configuration when using virtual nodetree 2015-12-11 12:46:35 +01:00
Christophe Romain
10c920ef13 Don't force max_items_node to MAXITEMS if not defined 2015-12-11 12:30:16 +01:00
Holger Weiss
469e93f37b mod_mam: Don't store resent messages
Make sure messages that were resent by the stream management code aren't
stored in MAM.
2015-12-09 22:44:45 +01:00
Holger Weiss
e09afe367f Document XEP-0334 support 2015-12-09 22:28:44 +01:00
Evgeniy Khramtsov
4c47ee63f2 Do not forget to include xmlns in mam prefs response (#859) 2015-12-09 12:53:02 +03:00
Paweł Chmielowski
be4d687a86 Fix problem with handling of old db entries in mod_mam 2015-12-09 09:47:03 +01:00
Holger Weiss
07baf2d973 Don't let "reopen_log" rotate files (EJAB-1243)
Make sure the "reopen_log" command really just reopens log files without
also rotating them.  For rotating log files, the new "rotate_log"
command can be used.
2015-12-08 22:48:04 +01:00
Holger Weiss
325c17f277 mod_mam: Update record field type 2015-12-08 22:21:39 +01:00
Holger Weiss
14609dbfa2 mod_mam: Remove unused code 2015-12-08 22:15:55 +01:00
Holger Weiss
59ba09826b mod_offline: Fix outdated comments 2015-12-08 21:58:54 +01:00
Holger Weiss
90fd7f3780 mod_offline: Honor <store/> hint
Ignore the "store_empty_body" option for messages that have a <store/>
hint as described in XEP-0334, version 0.2.
2015-12-08 21:46:36 +01:00
Alexey Shchepin
c2f6bf0343 Improve muc#roomconfig_presencebroadcast support 2015-12-08 21:53:42 +03:00
Paweł Chmielowski
67f93b0d60 Don't keep 10 sec timeout that i used for testing... 2015-12-08 11:28:03 +01:00
Paweł Chmielowski
7a69dab596 Add ability to disable timeout for ejabberdctl command 2015-12-08 11:25:26 +01:00
Holger Weiss
5ce0b062ff mod_mam: Honor Message Processing Hints (XEP-0334) 2015-12-08 00:10:00 +01:00
Badlop
3e57850da7 If mod_register access_from is 'none', then don't advertise IBR (#857) 2015-12-07 18:30:52 +01:00
Paweł Chmielowski
95a9100623 Fix more places where random:seed is used 2015-12-07 16:48:29 +01:00
Paweł Chmielowski
d0df7be722 Fix randoms.erl on R17 that don't have random:seed(integer()) 2015-12-07 16:37:40 +01:00
Paweł Chmielowski
5ac10d6555 Remove now() in pubsub code 2015-12-07 16:16:11 +01:00
Paweł Chmielowski
29db302808 More now() replacements 2015-12-07 16:09:48 +01:00
Paweł Chmielowski
b9f751e099 Fix bug in last commit 2015-12-07 10:26:51 +01:00
Paweł Chmielowski
0a846d03bf More now() removal 2015-12-06 15:58:46 +01:00
Paweł Chmielowski
5c329a7699 Remove now() - part 1 2015-12-04 15:08:43 +01:00
Badlop
daad71bc7e trusted_proxies option not parsed correctly (#860) 2015-12-04 13:14:39 +01:00
Holger Weiss
ba916c3162 XEP-0198: Fix stanza counting corner case issue
Don't forget to count outgoing stanzas that are processed while the
ejabberd_c2s process is already waiting for stream resumption.
2015-12-02 19:25:10 +01:00
Badlop
f9e12d900c No need for a top menu link as there's a top page link 2015-12-02 17:10:23 +01:00
Badlop
e412438aba When user joins logged room, he must be warned (EJAB-726) 2015-12-02 12:07:29 +01:00
Badlop
086fbc6a50 Only filter rooms in Service Disco when more than 100 (EJAB-343) 2015-12-02 02:32:25 +01:00
Badlop
ff22782752 List in Service Disco non-empty rooms and provide Node for empty (EJAB-343) 2015-12-02 01:51:39 +01:00
Mickael Remond
e5ae35c66b Update cache_tab app name 2015-12-01 19:17:51 +01:00
Evgeny Khramtsov
3397a9be5e Merge pull request #849 from weiss/discard-chat-states
mod_offline: Support discarding chat state notifications
2015-12-01 14:57:49 +03:00
Evgeniy Khramtsov
f1ecbf80fb Fix archive preference retreiving (#848) 2015-12-01 14:06:23 +03:00
Christophe Romain
9eeee67da7 Webadmin console visual refresh (thanks to Marek Foss) (EJAB-1142) 2015-11-30 11:35:53 +01:00
Evgeniy Khramtsov
9cc5a5d467 Simplify external components configuration 2015-11-28 17:38:34 +03:00
Holger Weiss
44f5e411c5 mod_offline: Support discarding chat states
XEP-0160 says that standalone chat state notifications should not be
stored offline.  By default, mod_offline discards them now.

Closes #842.
2015-11-26 08:35:49 +01:00
Holger Weiss
fee2530b1c Always use occupant JID as 'from' for room subject
When sending the room subject to a new participant, always use the
occupant JID that corresponds to the subject author as the 'from'
address.  It was already done this way when the subject was sent as part
of the room history.
2015-11-25 00:05:24 +01:00
Evgeniy Khramtsov
87fb5132be Make JID related functions from jlib.erl deprecated 2015-11-24 20:31:26 +03:00
Evgeniy Khramtsov
95265dd3ad Move JID related functions to jid.erl (#847) 2015-11-24 18:44:13 +03:00
Christophe Romain
16881597c9 Remove useless export_all flag 2015-11-23 12:03:08 +01:00
Christophe Romain
f3ff660eae Export content_type/3 needed by mod_http_upload 2015-11-23 11:53:36 +01:00
Christophe Romain
4480749a52 Merge branch 'cluster_fix' 2015-11-20 14:52:36 +01:00
Christophe Romain
b4ae1b63bc Allow longer command execution time 2015-11-20 10:39:32 +01:00
Christophe Romain
67a70b9107 Integrate join/leave cluster as ejabberd command 2015-11-20 10:39:27 +01:00
Evgeny Khramtsov
0e29307ad5 Merge pull request #840 from cenobites/mod_ping
Adding ping_ack_timeout in mod_opt_type configuration
2015-11-18 16:35:49 +03:00
Badlop
2659e2c4a0 Explain that reload_config only affects to ACL and Access 2015-11-18 13:25:19 +01:00
Nycholas de Oliveira e Oliveira
49a8de7c56 Adding ping_ack_timeout in mod_opt_type configuration
Avoid the error output

```
2015-11-18 12:02:40.297 [error] <0.37.0>@gen_mod:validate_opts:250 unknown option 'ping_ack_timeout' for module 'mod_ping' will be likely ignored, available options are: 'iqdisc', 'ping_interval', 'send_pings', 'timeout_action'
2015-11-18 12:02:40.334 [error] <0.37.0>@gen_mod:validate_opts:250 unknown option 'ping_ack_timeout' for module 'mod_ping' will be likely ignored, available options are: 'iqdisc', 'ping_interval', 'send_pings', 'timeout_action'
```

In setting mod_opt_type default, ping_ack_timeout parameter was added.
2015-11-18 10:25:01 -02:00
Holger Weiss
43626f5c97 mod_http_upload: Return error atoms, not strings
Don't convert error atoms to strings before actually logging them.  This
avoids a bogus error message when a user who has no uploaded files is
removed.
2015-11-17 00:12:20 +01:00
Badlop
53d72bd85a Disable vJUD by default also in mod_vcard_ldap source code 2015-11-13 19:33:23 +01:00
Badlop
f6d8f47451 Disable vJUD search in the default config and when not specified 2015-11-13 19:30:11 +01:00
Alexey Shchepin
aa5caa30e2 Support for muc#roomconfig_presencebroadcast option 2015-11-12 19:53:10 +03:00
Paweł Chmielowski
3ee5195b7a Fix problem with pipelined http requests arriving in single packet
This fixes github issue ejabberd#835
2015-11-12 17:23:59 +01:00
Holger Weiss
55a92c2983 mod_http_upload: Log message if URL looks wrong
Log an [info] message if a PUT request looks like the specified
"put_url" contains a path component that doesn't match the
"request_handlers" path, as in the following configuration:

  listen:
    -
      module: ejabberd_http
      port: 5444
      request_handlers:
        "/": mod_http_upload

  modules:
    mod_http_upload:
      put_url: "http://example.com/path/"
2015-11-11 22:51:40 +01:00
Holger Weiss
415a75c25a mod_http_upload_quota: Don't track all users
Don't track the disk usage of accounts that have an unlimited quota.
2015-11-10 22:08:16 +01:00
Holger Weiss
20709f9880 mod_http_upload: Make case indentation consistent
Use four spaces (or the corresponding amount of tab characters) for case
indentation everywhere in mod_http_upload and mod_http_upload_quota.
2015-11-09 19:23:52 +01:00
Holger Weiss
113c315857 mod_http_upload: Apply cosmetic changes 2015-11-09 19:12:08 +01:00
Holger Weiss
842db2ca15 mod_http_upload: Don't flatten command strings 2015-11-09 18:50:45 +01:00
Holger Weiss
9c80cb2b26 mod_http_upload: Don't let identify/1 return error
Let identify/1 return 'pass' when it failed to identify the file type,
as this doesn't (necessarily) indicate an error condition.  This also
makes it consistent with the return value of convert/2.
2015-11-09 18:41:31 +01:00
Paweł Chmielowski
58c1bc4276 Use xml_stream:reset() when possible 2015-11-09 16:05:09 +01:00
Christophe Romain
341be9b682 Remove supervisor option, disable it for c2s and muc 2015-11-04 16:24:35 +01:00
Holger Weiss
fec7e47169 Add copyright and license to HTTP upload modules 2015-11-04 01:22:39 +01:00
Holger Weiss
46bf190fd0 mod_client_state: Add my email address to header 2015-11-04 01:19:19 +01:00
Paweł Chmielowski
e54e543a66 Faster string_to_jid/1 implementation
This version is about 10-15% faster than old one
2015-11-03 14:41:01 +01:00
Holger Weiss
ff46738218 mod_http_upload_quota: Omit info message
The mod_http_upload_quota module attempts to delete a directory whenever
it removes a file from that directory.  However, if thumbnail creation
is enabled, directories will often contain two files.  Therefore, don't
log an info (but only a debug) message if directory removal fails.
2015-11-03 00:00:44 +01:00
Holger Weiss
4566325241 mod_http_upload: Don't complain during shutdown
Ignore the case where, for some reason, no process is found to be
stopped.

Closes #810.
2015-11-02 23:46:58 +01:00
Holger Weiss
1b368a86b7 mod_http_upload: Use binary strings in most places
Switch to binary strings to fix a type issue, and for consistency.

Closes #808.
2015-11-02 23:46:31 +01:00
Holger Weiss
9d2f1d5f0d mod_http_upload: Check availability of ImageMagick
Log an error message during startup if the thumbnail option is enabled
but ImageMagick is not installed.
2015-11-02 01:12:10 +01:00
Holger Weiss
eeb705fc2f mod_http_upload: Suppress error on non-image files
Don't log an error (but only a debug) message if ImageMagick fails to
indentify the file type for thumbnail creation.  The image might be
encrypted, or it could be a non-image file.

Closes #809.
2015-11-01 23:29:22 +01:00
Evgeniy Khramtsov
8bff06bea9 Merge branch 'master' of github.com:processone/ejabberd 2015-10-30 17:20:50 +03:00
Evgeniy Khramtsov
99f506135b Fix ipv6 configuration processing (#803) 2015-10-30 17:20:32 +03:00
Holger Weiss
915383e150 mod_http_upload: Add missing trailing dot
(Thanks to Matthias Rieber.)
2015-10-29 10:09:55 +01:00
Holger Weiss
43e7814714 mod_mam: Update supported XEP version 2015-10-28 23:53:53 +01:00
Holger Weiss
32fe74c923 mod_http_upload: Document protocol support 2015-10-28 23:52:33 +01:00
Holger Weiss
62ea763089 mod_http_upload: Fix string()/binary() type issue 2015-10-26 22:32:12 +01:00
Holger Weiss
3e7ee6af6d mod_http_upload: Add/fix function specifications 2015-10-26 22:30:58 +01:00
Holger Weiss
b5a09f8b15 mod_http_upload: Strip newline from command output
The list_to_integer/1 function doesn't cope with trailing newline
characters.
2015-10-26 22:10:32 +01:00
Holger Weiss
5dfd95e5a7 Support user quotas for HTTP File Upload
mod_http_upload_quota implements two features:

- When a "hard quota" is exceeded during a file upload, old files are
  removed until the disk usage equals or falls below the "soft quota".

- Once a day, all uploaded files (and directories) older than a
  configurable number of days are deleted.
2015-10-26 13:10:10 +01:00
Evgeniy Khramtsov
6f2e178de1 Rename badly entitled record field 2015-10-26 15:05:28 +03:00
Evgeniy Khramtsov
137a4ee087 Add HTTP File Upload support (XEP-0363) 2015-10-26 14:10:55 +03:00
Evgeniy Khramtsov
b2eb9f197a Don't crash on certificates without extensions (EJAB-1724) 2015-10-23 18:41:35 +03:00
Christophe Romain
2a115a83d2 Let modules_update_specs report failures (#756) 2015-10-23 17:21:19 +02:00
colm
d048d1e619 mod_ping: allowed the ping ack timeout (the length of time taken to deem that a ping has not being responded to) configurable. it still defaults to 32 seconds as per the constant IQ_TIMEOUT (in ejabberd_local.erl) this just makes it optionally configurable (in my case I needed to be more trigger happy than 32 seconds) 2015-10-22 13:48:40 +01:00
Christophe Romain
efdf5636be Add simple metrics module for use with grapherl 2015-10-22 14:02:26 +02:00
colm
92b9fb30e0 Don't send full JID in 'from' of Roster Push (RFC 6121 section 2.1.6). This is a patch by @badlop in the comments of github issue #367 2015-10-21 23:22:53 +01:00
Badlop
c62bd0c911 Use homogeneous s2s connections stats (#761) 2015-10-21 12:51:22 +02:00
Alexey Shchepin
8a2fa62cac Remove access_commands 'unrestricted' option, use [] instead. Fix unauthenticated calls to commands with policy=user. 2015-10-20 17:20:13 +03:00
Alexey Shchepin
7c1e7e5b5f Improve access_commands option backward compatibility 2015-10-19 20:16:04 +03:00
Alexey Shchepin
1f2b7e8f20 Fix access_commands option handling 2015-10-19 18:50:44 +03:00
Holger Weiss
28e28e926a ejabberd_listener: Fix ETS update on port reuse 2015-10-18 01:14:48 +02:00
Holger Weiss
5e467b96a1 ejabberd_c2s: Let stop/1 close XEP-0198 sessions
The stop/1 function now terminates stream management sessions
immediately, just as it does for other sessions.  The new
ejabberd_c2s:close/1 function can be used to close the socket without
terminating the stream management session, like stop/1 did before.
2015-10-17 23:15:31 +02:00
Holger Weiss
53bd0ee818 ejabberd_c2s: Close socket when waiting for resume
Make sure the socket is closed when mod_ping calls ejabberd_c2s:stop/1
for an XEP-0198 session.
2015-10-17 22:07:29 +02:00
Paweł Chmielowski
7d99484859 Make KEEPALIVE_QUERY list as this is what sql_query/3 expects 2015-10-15 10:07:24 +02:00
Alexey Shchepin
4fce1a17d7 Fix cyrsasl_oauth:mech_new call 2015-10-12 20:53:52 +03:00
Evgeniy Khramtsov
87273619a6 Advertise MAM (XEP-0313) v0.4 support in room disco 2015-10-11 19:43:24 +03:00
Paweł Chmielowski
b5ac0db895 Be able to merge old style configs with {listen,...} 2015-10-08 13:07:00 +02:00
Paweł Chmielowski
6d25db6600 Handler module shouldn't be used for differentiating listeners when merging configs 2015-10-07 16:45:07 +02:00
Christophe Romain
880114a909 Enforce get_allowed_items_call 2015-10-07 16:40:37 +02:00
Christophe Romain
653105a44f Fix acl issue from cleanup 2015-10-07 15:12:15 +02:00
Christophe Romain
f938c2a5e2 Revert "Avoid crypto:hmac/3 call for R15B compatibility"
This reverts commit 31e356c126.
2015-10-07 14:18:56 +02:00
Christophe Romain
6a23cad454 Revert "Fix compilation on Erlang R15B"
This reverts commit a5d6044448.
2015-10-07 14:18:47 +02:00
Christophe Romain
6aeb9dcb38 cosmetic cleanup 2015-10-07 14:18:38 +02:00
Evgeniy Khramtsov
6378c673df Avoid MAM dups when routing to multiple resources 2015-10-02 16:09:55 +02:00
Evgeniy Khramtsov
c7750689e8 Fix force_update_presence 2015-10-02 16:06:47 +02:00
Paweł Chmielowski
24fa95fd60 Fix problem with --auth in ejabberd_ctl:process2/2 2015-10-01 21:09:03 +02:00
Paweł Chmielowski
67d3b50598 Switch macros resolving in config files to be global instead of per file 2015-10-01 14:34:48 +02:00
Alexey Shchepin
cf975da8f2 Update several commands for recent ejabberd_commands changes 2015-09-28 15:29:25 +03:00
Alexey Shchepin
88a206400a Add oauth_access option 2015-09-25 19:48:53 +03:00
Badlop
1781a58929 Strip Nick element in message stanzas sent to a room (#686) 2015-09-25 17:00:00 +02:00
Christophe Romain
a1129dc96b Add OAuth support (thanks to Aleksey) 2015-09-25 15:49:07 +02:00