Commit Graph

1957 Commits

Author SHA1 Message Date
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
张奇怪 f29a8b0d5c
Mqtt protocol tests (#3237)
Add more test cases for MQTT
2020-02-07 10:07:36 +08:00
zhouzb 839465fbd8 Enhance security 2020-02-07 09:19:21 +08:00
JianBo He b9bdb03005 Decode/Encode json from nested proplist 2020-02-06 12:00:18 +08:00
zhouzb 368b85027e Fix issue#3228 2020-02-04 16:30:38 +08:00
JianBo He 3c459e8e74
Compatible jsx encode/decode (#3230) 2020-02-04 16:18:19 +08:00
terry-xiaoyu 367398e965 Remove jsx from app.src 2020-01-19 19:41:13 +08:00
Feng Lee eea377eb8f Replace 'jsx' with 'jiffy' and add more test cases 2020-01-19 16:58:51 +08:00
Feng Lee b3e2cc5a18 Replace 'jsx' with 'jiffy' to optimize json encode/decode 2020-01-19 16:58:51 +08:00
JianBo He e17241884c Send DISCONNECT packet for mqttv5 (#3183) (#3208) 2020-01-17 19:48:39 +08:00
Feng Lee f4081b5885 Tune the global GC 2020-01-17 18:32:00 +08:00
turtleDeng 7a2234c608 Improve emqx_mqtt_caps:get_caps/1 (#3198) 2020-01-17 16:29:46 +08:00
tigercl 8734922abb Fix rap handling and keep the value of retain flag in bridge mode (#3189) 2020-01-17 11:37:28 +08:00
turtleDeng 2897e4fa06 Fix the bug that cannot add a second MQTT-WS TCP Port (#3196) 2020-01-17 10:08:34 +08:00
Feng Lee a318532bb0 Tuning the 'force_gc_policy' of MQTT connections (#3192)
Tuning the 'force_gc_policy' of MQTT connections
2020-01-17 09:42:16 +08:00
Feng Lee 2b3003b323 Move the global GC server from 'emqx-recon' to 'emqx' project (#3190) 2020-01-16 23:45:17 +08:00
turtleDeng f6b2c9a69f Correct timestamp for banned (#3188) 2020-01-16 23:11:19 +08:00
Feng Lee 2ba624ac31 Add 'compose/1', 'compose/2' functions 2020-01-13 21:00:40 +08:00
zhanghongtong fdeade3212 Add more test cases 2020-01-09 20:01:46 +08:00
JianBo He b1a22931f4
Add testcase for takeover (#3160) 2020-01-09 12:26:24 +08:00
JianBo He 7d3a08dc13
Improve 'client.connect', 'client.connack' hooks (#3153) 2020-01-04 10:44:17 +08:00
turtleDeng 6b8ffc386a Fix WS reason code (#3149) 2020-01-04 10:06:50 +08:00
zhouzb 7ea75f4289 Update copyright 2020-01-03 18:31:08 +08:00
turtled f33217c049 Fix unexpected timeout 2019-12-31 09:06:58 +08:00
zhouzb 597558fee8 Fix unexpected timeout 2019-12-30 21:27:47 +08:00
Feng Lee 46ca3f2f82 Add metrics for session's lifecircle
- session.created
- session.resumed
- session.takeovered
- session.discarded
- session.terminated
2019-12-30 09:29:41 +08:00
Feng Lee 12c6d5fe2c Add more metrics for client's lifecircle
- client.connect
- client.connack
- client.connected
- client.authenticate
- client.check_acl
- client.subscribe
- client.unsubscribe
- client.disconnected
2019-12-30 09:28:55 +08:00
Feng Lee 9a3d16c654 Add 'emqx_packet:info/2' function and test cases 2019-12-30 09:28:38 +08:00