Commit Graph

2084 Commits

Author SHA1 Message Date
zhouzb
ac0f51fec3 fix(max topic len): use the maximum length limit by default 2020-12-28 14:48:32 +08:00
JianBo He
739e49218f
fix(cm): fix the problem of registering a channel twice (#3831) 2020-12-28 11:03:29 +08:00
ayodele.akingbule
b68a0b3730 fix(emqx_lua_hook): fix dialyzer warnings. 2020-12-25 07:42:01 +08:00
Zaiming Shi
7bdd093ef5 Merge remote-tracking branch 'origin/dev/v4.3.0' into umbrella-fix-build 2020-12-11 08:55:57 +01:00
ayodele.akingbule
6973837829 fix(emqx_plugins): Dialyzer warnings 2020-12-10 23:34:36 +01:00
Ayodele
56d7b3deb1 Umbrella fix build (#8) 2020-12-10 11:25:25 +01:00
ayodele.akingbule
59d69b730b fix(emqx_logger): Dialyzer warnings 2020-12-10 11:22:38 +01:00
ayodele.akingbule
b9b20ba268 fix(emqx.erl): Dialyzer warnings 2020-12-10 11:22:38 +01:00
ayodele.akingbule
62e0a21ad0 fix(emqx_auth_sys, emqx_ws_connection): Dialyzer warnings 2020-12-10 11:22:38 +01:00
ayodele.akingbule
18ae158f45 fix(emqx_plugins, emqx_sys, emqx_sys_mon, emqx_ws_connection): Dialyzer warnings 2020-12-10 11:22:38 +01:00
Zaiming Shi
baaa4e847d fix(emqx_sn_gateway): Dialyzer warnings 2020-12-10 09:49:24 +01:00
Zaiming Shi
eecd2b5f35 fix(emqx_types): Non mandatory map fields 2020-12-10 09:38:07 +01:00
Zaiming Shi
adc9cc30f6 refactor(emqx_modules): Swallow errors when write modules 2020-12-10 09:35:36 +01:00
Zaiming Shi
d47a2294ca fix(emqx_mod_topic_metrics): Dialyzer warnings 2020-12-10 09:35:36 +01:00
Zaiming Shi
0f0ca1e9fd fix(emqx_mod_rewrite): Dialyzer warnings 2020-12-10 09:35:36 +01:00
Zaiming Shi
ab5599b3ec refactor(hook): Add emqx_hooks:put to hide already_exists error
This also fixes dialyzer warnings in emqx_mod_presence
2020-12-10 09:35:36 +01:00
Zaiming Shi
5793ef6640 fix(emqx_mod_sup): Dialyzer warning
All the callers of start_child API are discarding the return value.
2020-12-10 09:35:36 +01:00
Zaiming Shi
f3d973689b fix(emqx_listeners): Dialyzer warnings 2020-12-10 09:35:36 +01:00
Zaiming Shi
7a39470200 fix(emqx_connection): Dialyzer warnings 2020-12-10 09:35:36 +01:00
Zaiming Shi
7dd67a6caf fix(emqx_channel): Dialyzer warning 2020-12-10 09:35:36 +01:00
Zaiming Shi
cfe52cbb8d fix(emqx_broker): Dialyzer warning 2020-12-10 09:35:36 +01:00
Zaiming Shi
0eb697fa6f fix(emqx_app): Dialyzer warnings 2020-12-10 09:35:35 +01:00
Zaiming Shi
3fb69cc407 fix(emqx_alarm): Dialyzer warnings 2020-12-10 09:35:35 +01:00
Zaiming Shi
0d90d5c66b fix(emqx_acl_cache): Dialyzer warnings 2020-12-10 09:35:35 +01:00
Zaiming Shi
d4aa5ebf55 fix(emqx): Fix dialyzer warnings 2020-12-10 09:35:35 +01:00
JianBo He
7f556d36d1
Merge branch 'dev/v4.3.0' into e422_to_v430 2020-12-09 11:28:36 +08:00
Zaiming Shi
6d1cd6b7ea refactor(emqx_password): move the module to emqx application
Future plugins will require emqx as a dependency.
This commit also brings back bcrypt to the system which was temporary
removed when converting to umbrella project
2020-12-08 22:09:59 +01:00
Shawn
0ee489a9be fix(congestion): change the conn congestion alarm msg body 2020-12-07 15:05:20 +08:00
Shawn
d00ea48752 feature(tcp): alarm when tcp connection congested 2020-12-07 14:35:38 +08:00
JianBo He
505257b25b chore(appup): remeove the code_change codes 2020-12-05 17:22:44 +08:00
JianBo He
ae9449a004 chore: eliminate diaylzer warnings 2020-12-05 17:20:50 +08:00
JianBo He
f1b3bbd7bc chore: supply the code_change logic 2020-12-05 17:20:50 +08:00
JianBo He
3b1074d11f refactor(conn): not saving anonymous func 2020-12-05 17:11:58 +08:00
JianBo He
3f924631e4 refactor(limiter): not saving anonymous function 2020-12-05 17:03:57 +08:00
JianBo He
2e7ec25ae2 chore(appup): suspend esockd_acceptor 2020-12-05 15:04:14 +08:00
Zaiming Shi
73d02beace refactor(apps): Merge emqx_libs back to emqx
And move emqx app back to root level

After realising the challenges of developing plugins in standalone
rebar projects. it is perhaps more smooth to keep using emqx as
a rebar dependency
2020-12-04 19:58:58 +01:00
JianBo He
7462ed92ba chore: eliminate diaylzer warnings 2020-12-04 22:33:29 +08:00
JianBo He
ca0f6b69a4 chore: supply the code_change logic 2020-12-04 22:33:29 +08:00
JianBo He
80c503fd64 refactor(conn): not saving anonymous func 2020-12-04 22:33:29 +08:00
JianBo He
40d272815a refactor(limiter): not saving anonymous function 2020-12-04 22:33:29 +08:00
Shawn
f5162562a4
chore(appup): update appup 2020-11-26 10:42:35 +08:00
Shawn
aa7124f3c9
chore(appup): use binding var 'VSN' 2020-11-25 14:40:25 +08:00
turtleDeng
3ca39cb9cb
chore(appup): update version 2020-11-25 10:27:56 +08:00
zhanghongtong
3f41adc3bd chore(appup): update version 2020-11-25 01:07:19 +08:00
zhanghongtong
cf7c3b4f0c fix(appup): fix syntax error 2020-11-13 17:40:36 +08:00
zhanghongtong
253c43e405 feat(emqx_metrics): add new functions to count message received 2020-11-13 16:42:48 +08:00
turtled
41a8f2f811 Merge branch 'stable/e4.2.0' of https://github.com/emqx/emqx into stable/e4.2.0 2020-11-13 10:40:28 +08:00
turtled
77d777fd11 chore(acl): rollback emqx_access_rule module 2020-11-13 10:40:14 +08:00
terry-xiaoyu
8cc69e639f fix(congestion): change the conn congestion alarm msg body 2020-11-11 17:33:38 +08:00
turtled
26c03aaa43 feat(connection): update alarm info 2020-11-11 09:37:39 +08:00
zhanghongtong
e100b0a5e9 feat(emqx_metrics): add new functions to count message received 2020-11-10 23:36:11 +08:00
Shawn
cc69225b6d feature(tcp): alarm when tcp connection congested (#3818) 2020-11-10 23:36:11 +08:00
JianBo He
139306b61c fix(json): fix decoding/encoding empty object error 2020-11-10 23:36:11 +08:00
JianBo He
b883e238bf fix(ws): take ws_cookie to clientinfo
see: https://github.com/emqx/emqx/issues/3747#issuecomment-702268570
2020-11-10 23:36:11 +08:00
terry-xiaoyu
5a8efd9d20 feature(project): move src to apps/emqx/src 2020-10-31 09:19:28 +08:00
JianBo He
b373c0cf1b fix(json): fix decoding/encoding empty object error 2020-10-24 15:49:15 +08:00
zhouzb
8462da9652 fix(topic metrics): add appup.src 2020-10-24 11:21:39 +08:00
zhouzb
b927bb7af6 fix(topic metrics): calculate the rate correctly 2020-10-24 11:21:39 +08:00
JianBo He
2feeb4d91f fix(ws): take ws_cookie to clientinfo
see: https://github.com/emqx/emqx/issues/3747#issuecomment-702268570
2020-10-24 11:21:39 +08:00
bignullnull
87ef4e4dd9 chore(types): Add the disconnected_at field definition in conninfo (#3764) 2020-10-24 11:21:39 +08:00
turtled
eb4b9936dc fix(modules): fix conflicts 2020-10-11 11:12:39 +08:00
terry-xiaoyu
7b98f62f7a fix(config): enable force_shutdown_policy by default 2020-09-30 11:36:30 +08:00
tigercl
da4d71917f fix(ignore-loop-deliver): fix issue#3738 (#3741) 2020-09-29 15:35:16 +08:00
JianBo He
76ec65830c fix: fix session_locking_strategy enum typos 2020-09-29 15:35:16 +08:00
zhanghongtong
fa31062a5e chore(topic rewrite): export more functions 2020-09-11 12:37:47 +08:00
JianBo He
3d4eac7e7a fix(json): fix safe_encode for utf8 string 2020-09-11 12:26:13 +08:00
turtleDeng
edcbdcce87 improve: module_acl_internal load/unload api (#3706) 2020-09-05 17:23:22 +08:00
JianBo He
90b33b044d feature(ratelimit): support to set ratelimit & quota policy 2020-09-05 17:23:22 +08:00
terry-xiaoyu
4233ef4e85 fix(xref): correct the type spec of logger_handler_info() 2020-08-28 17:10:26 +08:00
terry-xiaoyu
9985e2675c fix(logger): resolve issues when starting and stopping log handlers 2020-08-28 17:10:26 +08:00
terry-xiaoyu
faf0b5289c feature(logger): support starting and stopping log handlers 2020-08-28 17:10:26 +08:00
JianBo He
e411b4bad3 fix(cm): fix never matching clause 2020-08-28 17:10:26 +08:00
zhouzb
261bd66a3d refactor(alarm): refactor resource down alarm 2020-08-22 15:27:11 +08:00
zhouzb
7a2a01a4de fix(mqtt piggyback): bad data type 2020-08-22 15:27:11 +08:00
zhouzb
ec12acc4ef feature(mqtt piggyback): transporting mutli MQTT packets at once or single 2020-08-22 15:27:11 +08:00
zhouzb
cfcbc53a8b refactor(alarm): remove excess case 2020-08-22 15:27:11 +08:00
zhouzb
c2cc8ab218 feature(resource-down-alarm): add resource down alarm 2020-08-22 15:27:11 +08:00
tigercl
901573c6a5 fix(topic-metrics): fix the issue that the corresponding data is not properly cleaned up when unregistering (#3679) 2020-08-22 15:27:11 +08:00
Rory Z
f47e10e08a feature(emqx_mod_rewrite): separate rewrite rules for pub and sub (#3676) 2020-08-22 15:27:11 +08:00
zhouzb
dbeabf3de0 refactor(telemetry): remove telemetry code from emqx core 2020-08-22 15:27:11 +08:00
JianBo He
9e5e6f2e98 fix(guid): compatible with OTP 23 2020-08-22 15:27:11 +08:00
zhanghongtong
a76be8e0fa chore: fix the compilation error when there is "/" in the branch name 2020-08-22 15:27:11 +08:00
tigercl
e37a70509b feature(telemetry): support for collecting telemetry data and disable it by default (#3653) 2020-08-14 16:58:08 +08:00
JianBo He
98faa698f3 feature(quota): add quota confs to limit the number of message forwards 2020-08-14 16:58:08 +08:00
JianBo He
89377aeaa2 improve(type): refine the message header types 2020-08-14 16:58:08 +08:00
zhouzb
87780c1c1b fix(static-cluster): fix the issue that static cluster failure caused by the wrong way of creating tables 2020-08-14 16:58:08 +08:00
zhouzb
aaf29ee164 fix(alarm): fix the issue that memory watermark were not set correctly 2020-07-31 18:07:20 +08:00
zhouzb
1ba4743213 refactor(alarm): new data structure and support regular cleaning of deactivated alarms 2020-07-31 18:07:20 +08:00
zhouzb
5676026e2a fix(alarm): missing partition alarm 2020-07-31 18:07:20 +08:00
zhouzb
43b49edd28 feature(alarm): new design for alarm 2020-07-31 18:07:20 +08:00
zhanghongtong
0817761aee fix(emqx_channel): EMQ X replaces MQTT properties when node connects using "topic-alias-maximum" property 2020-07-31 18:07:20 +08:00
zhouzb
00bc525d8e refactor(add-log): log when subscription fails 2020-07-31 18:07:20 +08:00
JianBo He
83a2af812f feat(ratelimit): refactor ratelimit 2020-07-31 18:07:20 +08:00
zhanghongtong
961e7b9818 chore: update app.src.script 2020-07-20 10:08:47 +08:00
Rory Z
492d224728
Auto-pull-request-on-2020-07-17 (#3600)
* refactor(channel): skip the ACL checking for inner subscribe
* fix(props): fix the prop_emqx_sys results of judgment
* Update esockd to 5.7.1
* test(topic-metrics): add test cases for topic metrics
* perf(emqx_vm): make emqx_vm:get_memory/0 more efficiency
2020-07-17 18:25:46 +08:00
terry-xiaoyu
211c800e24 fix(properties): downlink will msg contains non-publish properties
The paho test failed because the client received a will message
that has an `Will-Delay-Interval` property.

All the 7 allowed PUBLISH properties are listed as follows:

```
'Payload-Format-Indicator',
'Message-Expiry-Interval',
'Response-Topic',
'Correlation-Data',
'User-Property',
'Subscription-Identifier',
'Content-Type'
```
2020-06-21 11:27:22 +08:00
JianBo He
600b1055f3 fix(json): convert a proplists to ejson instead of map 2020-06-20 15:42:07 +08:00
tigercl
1b6a586948
feature(mqtt): support response information (#3533) 2020-06-20 15:07:37 +08:00
zhanghongtong
8707afa54c fix(enhanced_auth): fix bug when "conn_props = undefined" 2020-06-20 14:29:20 +08:00
JianBo He
9a8859a44c refactor(topic): move triples/1 func into emqx_trie module 2020-06-18 17:38:34 +08:00
JianBo He
e3489b9d46 refactor(style): improve all types declaration
- Add dialyzer for code analysis
- Correct all the module type declarations
- Use `-type()` to declaration a type instead of `-opaque`
  (It is advantageous to the code dialyzer)

BROKEN CHANGES:
- Add a ?DEFAULT_SUBOPTS for emqx_broker:subscribe/1,2,3
- Remove the needless internal function `emqx_vm:port_info(PortTerm, Keys)`
2020-06-18 17:38:34 +08:00
terry-xiaoyu
6ad65d587e feature(properties): add properties in message header
1. Add MQTT5.0 properties when invoking the hooks.

- Add a new key `properties` into the message header:

  We used to put all of the properties into the `#message.headers`:

  ```erlang
  #message{headers = #{'User-Property' => {<<"reason">>,<<"normal">>},
                       'Message-Expiry-Interval' => 60,
                       allow_publish => true}
  ```

  I put them instead under a single key:

  ```erlang
  #message{headers = #{properties =>
                        #{'User-Property' => {<<"reason">>,<<"normal">>},
                          'Message-Expiry-Interval' => 60},
                       allow_publish => true}
  ```

  Note that the column `properties` may contain all the properties for
  Publish and Will messages.

- Add `disconn_props` into the `Channel.conninfo`

- Add `puback_props` also into the message header:

  ```erlang
  #message{headers = #{puback_props =>
                        #{'User-Property' => {<<"reason">>,<<"normal">>}},
                       allow_publish => true}
  ```

2. Change the data type of `#message.headers` and `#message.flags` to map.

   It used to support `undefined`.
2020-06-17 18:46:26 +08:00
JianBo He
ea2a424ce2
Add ensure/2 funcs to avoid needless logs (#3483) 2020-06-04 10:46:53 +08:00
zhouzb
f456f40c59 Subscribe or unsubscribe via HTTP API skip ACL checking 2020-06-04 10:45:58 +08:00
JianBo He
42fc81338c Fix(modules): correct the bad return value for emqx_modules:load/0 2020-06-04 10:38:28 +08:00
JianBo He
3fb82f7234 Fix(connect): fix the race condition for openning session
- Remove the register_channel/1,2 functions
2020-06-02 17:21:06 +08:00
terry-xiaoyu
59f95f8421 Helpful message when no commands available 2020-05-23 09:41:25 +08:00
zhouzb
83b1f3e6c8 Fix unexpected packet before connected 2020-05-22 18:18:52 +08:00
JianBo He
18ae15ef9a Fix typos 2020-05-21 17:51:22 +08:00
terry-xiaoyu
1f07700930 Print helpful messages when no commands available 2020-05-16 08:48:05 +08:00
zhouzb
80e2bd19b9 Fix case_clause in issue#3455 2020-05-12 10:39:22 +08:00
JianBo He
48d6acdb25 Replace peercert with cn/dn feilds in ClientInfo 2020-04-30 16:35:15 +08:00
zhanghongtong
c35a40a6b6 Fix some error for reauthentication 2020-04-28 11:48:07 +08:00
qingchuwudi
7ba801c8d4
Fix reload acl module and clean acl caches (#3409) 2020-04-26 15:45:55 +08:00
zhouzb
7cf97acddd Delete expiried client 2020-04-26 15:38:29 +08:00
zhanghongtong
021520315a Update enhanced auth hooks 2020-04-24 10:21:22 +08:00
tigercl
b37c61fdb5
Merge pull request #3392 from emqx/print
Optimize cli print
2020-04-17 18:05:37 +08:00
tigercl
5922f5358e
Merge pull request #3396 from emqx/add_hook_to_auth_packet
Add hook to auth packet
2020-04-17 18:05:25 +08:00
zhouzb
6cab60b6ab Export emqx_modules:find_module/1 2020-04-17 11:02:40 +08:00
zhanghongtong
dccf3560f0 Add hook to auth packet 2020-04-16 16:07:01 +08:00
zhouzb
fb661b1d92 Support return all registered topics 2020-04-16 10:35:35 +08:00
zhouzb
eebc5e4b0a Optimize cli print 2020-04-15 18:05:30 +08:00
terry-xiaoyu
e806a96031 Change timestamps to millisecond 2020-04-15 09:03:52 +08:00
张奇怪
9ba938b9d9
EMQX failed to start when the listening port was occupied (#3354) 2020-04-11 10:18:35 +08:00
turtleDeng
d49f4118fe
Mgmt emqx modules (#3376) 2020-04-10 19:55:21 +08:00
张奇怪
d4932533ca
Auth packet (#3374) 2020-04-10 19:45:18 +08:00
JianBo He
1790cde942 Get client's addr/port from proxy header if enable proxy_protocol 2020-04-10 19:40:10 +08:00
zhouzb
49440bd2e3 Export functions 2020-03-27 18:22:59 +08:00
JianBo He
edb42b1b0f Set topic alias on v5 only 2020-03-27 17:02:38 +08:00
zhouzb
792a14aaf7 Fix plugin test case 2020-03-27 15:31:11 +08:00
tigercl
55a8b1b173
Support topic metrics (#3341)
Support topic metrics
2020-03-27 13:33:10 +08:00
张奇怪
78144c0ca5
Update error log (#3342)
Optimize content of error log
2020-03-27 10:10:23 +08:00
tigercl
5eadca1782
Merge pull request #3335 from emqx/reload_plugin
Read new configuration items when plugins is loaded
2020-03-26 18:35:49 +08:00
tigercl
5c5267c96b
Merge pull request #3327 from emqx/fix_json_encode
Fix emqx_json encode return types error
2020-03-26 18:33:16 +08:00
JianBo He
9e6966110d
Move emqx_delay_publish here (#3323)
Move emqx_delay_publish here
2020-03-26 18:32:24 +08:00
zhouzb
9398865741 Fix the issue that configuration was not loaded when plugin started 2020-03-25 10:30:08 +08:00
张奇怪
59adb9a652
Supports broker-to-client topic aliases (#3325) 2020-03-24 15:23:01 +08:00
张奇怪
2ab6ec418e
Add subscription option for proxy subscribing 2020-03-24 11:31:25 +08:00
zhouzb
3b537760d5 Read new configuration items when plugins is loaded 2020-03-23 15:23:38 +08:00
JianBo He
95baee8c8e Fix emqx_json encode return types error 2020-03-21 13:38:48 +08:00
JianBo He
7e00b58db5
Remove the CONNACK's Maximum-QoS key if it equal to 2 (#3321) 2020-03-17 17:56:34 +08:00
JianBo He
b2e5b523dd
Change global_gc to major mode (#3317) 2020-03-17 14:28:58 +08:00
terry-xiaoyu
1221b8eb00 Force utf8 json encoding by default #3287 2020-03-11 11:18:12 +08:00
JianBo He
47720b906f Fix peer_cert_as_username option not working
see #3281
2020-03-05 15:55:39 +08:00
zhouzb
ad7cbb4428 Fix einval after socket was closed 2020-03-05 14:28:12 +08:00
zhouzb
caed16f57b Fix acl_deny_action 2020-03-05 14:27:41 +08:00
terry-xiaoyu
6b5a8949c5 Change rate limit pausing logs to warning 2020-03-02 18:26:37 +08:00
JianBo He
9b6a8ebe84 Fix emqx_json:to_ejson 2020-02-21 13:17:12 +08:00
JianBo He
3f6f0eca40
Add an option to allow client bypass auth plugins 2020-02-21 09:42:26 +08:00
JianBo He
f6b0ad8873 Ignore some discarded exceptions 2020-02-17 09:40:44 +08:00