Commit Graph

2210 Commits

Author SHA1 Message Date
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
张奇怪 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
Feng Lee b7ca3905a6 Breaking Change: Add new hooks for client and session lifecircle (#3138) 2019-12-27 16:31:06 +08:00
JianBo He d000284a40 Merge branch 'caps' into develop 2019-12-21 16:04:41 +08:00
turtleDeng b612674ffa
Update emqx_mqtt_caps.erl 2019-12-21 14:16:37 +08:00
JianBo He b3eed9123f Fix typo 2019-12-21 10:39:02 +08:00
Feng Lee 578355442b Add more metrics and improve the 'channel', 'session' modules (#3128) 2019-12-20 21:47:32 +08:00
张奇怪 2cf3af12ef Update test cases for emqx_connection (#3116) 2019-12-20 19:15:45 +08:00
tigercl 116c593178 Fix returned value of plugin reloading (#3126) 2019-12-20 16:34:07 +08:00
JianBo He 9b9df46718
Add sockport to ClientInfo (#3122) 2019-12-19 13:34:24 +08:00
zhouzb 70ae3c75a0 Remove emqx_time module 2019-12-17 09:38:33 +08:00
turtled eea5e14b0c Fix event/message out of order 2019-12-16 22:12:56 +08:00
Feng Lee 814f103e34 Fix issue#3109 - remove the 'sessions.persistent.count', 'sessions.persistent.max' stats 2019-12-16 16:41:42 +08:00
Feng Lee 1f25f4439f Remove the 'stop_reason' field 2019-12-16 12:45:46 +08:00
Feng Lee 635c3f75fe Improve the 'emqx_connection' module for CT 2019-12-16 11:25:47 +08:00
Feng Lee ad9e0fc311 Support the 'clean_start = false' websocket connection 2019-12-16 11:25:47 +08:00
Feng Lee 2ef52828bc Improve 'emqx_connection' module and update test cases 2019-12-16 11:25:47 +08:00
zhouzb 7ac60678de Add test cases for emqx_cm and emqx_router_helper modules 2019-12-13 18:09:48 +08:00
Feng Lee c5c99b7c4e Improve 'emqx_ws_connection' module and add more test cases 2019-12-13 18:07:59 +08:00
tigercl 2a3baed7e0
Merge pull request #3103 from emqx/ws-conn-ct
Rename 'channel.gc.cnt' to 'channel.gc'
2019-12-13 18:04:54 +08:00
Feng Lee d193b5fa0d Rename 'channel.gc.cnt' to 'channel.gc' 2019-12-11 20:39:51 +08:00
Feng Lee d1c3dec730 Optimize emqx_session and add more test cases 2019-12-11 13:44:52 +08:00
zhouzb e30c0ac31d Change log level for existing metric 2019-12-10 17:20:21 +08:00
zhouzb ec2f758c9f Use erlang:system_time/1 2019-12-10 09:25:39 +08:00
JianBo He 08e234f61e Fix typo 2019-12-10 09:24:33 +08:00
Feng Lee 0f9f1258b6 Improve the emqx_message module and add more test cases
- Add 'emqx_message:clean_dup/1' function
- Clean dup flag before publishing a message
- Add more test cases for emqx_message module
2019-12-10 09:22:38 +08:00
Feng Lee cd94ba71b4 Remove the 'try' ... 'catch' 2019-12-10 09:01:55 +08:00
Feng Lee 0c377c67cd Use 'erlang:system_time' to replace 'os:timestamp' (#3088)
Use 'erlang:system_time/1' to replace 'os:timestamp/0'
2019-12-09 16:27:25 +08:00
zhouzb dace882667 Fix will message 2019-12-07 17:06:22 +08:00
Feng Lee dc3e7dc21c Ignore the expired messages 2019-12-07 16:51:20 +08:00
Feng Lee bbcd2bffc5 Improve the session module (#3082)
Improve the session module
2019-12-07 15:54:02 +08:00
zhouzb 32500685a1 Export emqx_cm:kick_session/2 2019-12-07 13:35:55 +08:00
zhouzb 5b949fda2c Add emqx_cm:kick_session/1 2019-12-07 13:31:33 +08:00
Feng Lee 9c3273a2c6 Improve the process of handling MQTT control packets (#3079) 2019-12-06 19:51:06 +08:00
tigercl 98b109b6b2
Merge pull request #3074 from emqx/emqx_desc
Add emqx.app.src.script
2019-12-05 18:01:24 +08:00
turtled dceb087039 Format code 2019-12-04 13:54:59 +08:00
turtled 4b59db62fa Optimize caps 2019-12-04 13:52:01 +08:00
turtled 691c6aa182 Add emqx.app.src.script 2019-12-04 13:50:31 +08:00
turtleDeng a540958846 Add mqtt.strict_mode configuration (#3069)
Add mqtt.strict_mode configuration
2019-12-04 10:54:52 +08:00
zhouzb 8bf06b9c63 Fix typo 2019-11-23 10:53:27 +08:00
tigercl f44b8ce607
Avoid emqx crashes due to auth plugins (#3047)
Avoid emqx crashes due to auth plugins
2019-11-23 10:11:48 +08:00
zhouzb 790c729b1f Optimize code 2019-11-21 16:26:50 +08:00
JianBo He d7ddc406fa Fix ConnInfo of client.connected hook 2019-11-21 15:01:57 +08:00
Feng Lee 1af1fc4f6a Fix the check of limiter 2019-11-18 11:51:58 +08:00
Feng Lee 39dbb03629 Fix the 'undefined function' call 2019-11-18 11:11:20 +08:00
zhouzb c9963b1df5 Replace esockd_net with inet 2019-11-18 10:58:15 +08:00
tigercl 6288cd1345
Merge branch 'develop' into bump-version 2019-11-18 10:53:33 +08:00
tigercl d793c4256f
Merge pull request #3034 from emqx/rm-vm-module
Improve the emqx_vm module and update test cases
2019-11-18 10:51:54 +08:00
tigercl b10cd85ba3
Merge pull request #3033 from emqx/flapping2
Optimize flapping and banned modules
2019-11-18 10:50:35 +08:00
tigercl 2ad701361d
Merge pull request #3031 from emqx/more_test_cases
Add more test cases
2019-11-18 10:49:56 +08:00
Feng Lee 4935ba11a8 Upgrade deps to ekka v0.7.0 and esockd v5.6.0 2019-11-18 10:40:53 +08:00
zhouzb 73275a2b4d Replace inflight with inflight_cnt in STATS_KEYS 2019-11-18 10:24:23 +08:00
Feng Lee 17332b0465 Improve the emqx_vm module and update test cases 2019-11-14 10:40:55 +08:00
Feng Lee d3107facf9 Validate packet id if strict mode. 2019-11-14 09:46:56 +08:00
zhouzb 2fb4d66496 Optimize flapping and banned modules 2019-11-14 09:37:37 +08:00
zhanghongtong 1072536382 Add more test cases for emqx_sup 2019-11-13 18:30:02 +08:00
zhanghongtong b22a1a87ba Add more test case for emqx_plugins 2019-11-09 21:26:15 +08:00
zhanghongtong f1ae430d43 Add more test cases for emqx_sys 2019-11-08 17:01:10 +08:00
terry-xiaoyu df3d7b628b Update emqx_ws_connection for clientinfo 2019-11-01 21:36:30 +08:00
terry-xiaoyu 3cc2bf2bfa Merge branch 'develop' into make_test_cases_pass 2019-11-01 20:05:52 +08:00
zhouzb 0be06a93d6 Fix test cases 2019-11-01 18:38:30 +08:00
terry-xiaoyu d946848d42 Improve testcases for emqx_logger 2019-11-01 18:21:46 +08:00
tigercl 1a901942f7
Merge pull request #3007 from emqx/improve-connection
Improve the 'connection', 'channel' and 'zone' modules
2019-11-01 16:40:20 +08:00
tigercl 81a507c6fa
Merge pull request #3012 from emqx/add_more_test_cases
Add more test cases
2019-11-01 16:40:00 +08:00
tigercl b3731aaff4
Merge pull request #3010 from emqx/test_cases_zhou
Add test cases and fix bugs
2019-11-01 16:29:00 +08:00
zhouzb c5ad674dd7 Add test cases and fix bugs 2019-11-01 15:48:28 +08:00
Feng Lee 2b1b58fc66 Add the new 'emqx_limiter' module 2019-11-01 08:10:58 +08:00
Feng Lee 6f30dca4ba Add more option APIs 2019-11-01 08:10:26 +08:00
Feng Lee d256387cee Ensure the 'inc_sent/1', 'inc_recv/1' to return 'ok' 2019-11-01 08:09:45 +08:00
Feng Lee 30adfc18e6 Remove 'gc_state' and 'pub_stats' from channel's state 2019-11-01 08:08:38 +08:00
Feng Lee 605a03453e Remove the 'emqx_time' module and use 'erlang:system_time/1' 2019-11-01 08:07:34 +08:00
Feng Lee 223163d5b9 Remove the 'emqx_oom' module 2019-11-01 08:00:35 +08:00
Feng Lee 4c9dda105f Add 'active_n' option for WebSocket listener 2019-11-01 08:00:11 +08:00
zhanghongtong 971a361ea9 Add more test cases for emqx_logger and fix bug for emqx_logger 2019-10-29 14:27:47 +08:00
terry-xiaoyu 3405dbaf5c Ordered messaging via multiple gen_rpc clients 2019-10-28 21:01:53 +08:00
terry-xiaoyu f7d3c01308 Merge branch 'develop' into clean_acl_cache 2019-10-28 18:02:41 +08:00
terry-xiaoyu c1d768ff74 Add API for clean and get acl cache 2019-10-28 17:53:53 +08:00
Feng Lee ebef0ec554 Add zone_options module 2019-10-28 07:51:09 +08:00
张奇怪 c713d619da
Add more test cases (#2992)
* Add more test cases for emqx_stats and emqx_os_mon
Fix test case error for emqx_ws_connection

* Add more test cases for emqx_sys_mon

* Update erlang otp to 22.1 for travis ci

* Delete readable=false for make ct

* Add unset_all_env for emqx_zone and update test cases
2019-10-24 15:41:26 +08:00
turtled 1dfbe8e166 Fix WS badmatch 2019-10-22 09:11:42 +08:00
Feng Lee fca7a7e761 Merge branch 'connection-test-using-meck' into develop 2019-10-21 19:53:53 +08:00
terry-xiaoyu cb77b229b8 Add testcase for emqx_logger_formatter 2019-10-21 18:35:32 +08:00
Feng Lee 7117dde879 Add more test cases for connection, channel and session modules 2019-10-21 17:14:50 +08:00
Feng Lee 26eab630b3 Add test cases for emqx_channel module 2019-10-20 19:20:38 +08:00
Feng Lee aecda09b9a Add more test cases 2019-10-19 20:18:34 +08:00
Feng Lee cd4adbada0 Add more test cases for connection, channel and session modules 2019-10-18 18:53:31 +08:00
Feng Lee 53dda48833 Fix the 'function_clause' error when session is undefined 2019-10-14 17:01:41 +08:00
Feng Lee a1877f3f42 Return the '{enter, connected}' event first 2019-10-14 13:04:49 +08:00
Feng Lee 6233aa7d46 Ensure the 'conn_state' be 'disconnected' after socket closed 2019-10-12 19:14:33 +08:00
Feng Lee 932821360f Merge branch 'new-connection-module' into develop 2019-10-12 17:08:48 +08:00
Feng Lee cce0dbd3cf Improve the connection, ws_connection and channel modules 2019-10-12 17:05:37 +08:00
terry-xiaoyu 47a192ee34 Avoid process crash report for arbitrary exit reason 2019-10-12 14:48:39 +08:00
terry-xiaoyu ebea3cc392 Defend the ssl upgrade failure 2019-10-12 09:34:28 +08:00
zhouzb 7512d6cb03 Check topic level for publish packet and optimize the handling of rap 2019-10-12 09:33:47 +08:00
Feng Lee 0c37c65a59 Add a new type 'sockstate/0' 2019-10-10 13:59:34 +08:00
Feng Lee e718fa8249 Rewrite the 'emqx_connection' module using a raw erlang process 2019-10-08 17:59:11 +08:00
zhouzb ddd68e600d Fix missing cases 2019-09-29 15:32:53 +08:00
Feng Lee fe2a72c664 Add 'state' field to channel info 2019-09-29 11:47:31 +08:00
Feng Lee 977b551bbf Fix the test cases for session, channel and connection modules 2019-09-29 10:53:59 +08:00
Feng Lee 8ab682151d Improve the connection and channel modules
- Rename the 'client_id' field to 'clientid'
- Support publish stats in channel module
- Update test cases for frame and channel modules
2019-09-29 10:22:02 +08:00
Feng Lee 7b1a80c265 Rename 'mailbox_len' to 'message_queue_len' 2019-09-27 20:26:54 +08:00
Feng Lee 89b03eb9a6 Add function specs 2019-09-24 17:08:06 +08:00
Feng Lee 609f442ea9 Add function 'get_counters/1' 2019-09-24 17:07:32 +08:00
Feng Lee 20ddd498fc Rename the 'client_id' field to 'clientid' 2019-09-24 17:06:25 +08:00
Feng Lee 98b7e3d948 Rename the type 'client()' to 'client_info()'
- Rename tye type 'client()' to 'client_info()'
- Rename the 'client' field of channel to 'client_info'
- Fix the function specs
2019-09-21 15:27:05 +08:00
terry-xiaoyu eb0826ef3f Fix testcases for new object field protocol 2019-09-21 12:37:08 +08:00
terry-xiaoyu 18edf5cec3 Add protocol in client object 2019-09-21 12:20:20 +08:00
terry-xiaoyu ab9d7232a9 Reset peerport 2019-09-20 22:57:01 +08:00
terry-xiaoyu 464746e9a5 Add peerport 2019-09-20 22:42:07 +08:00
terry-xiaoyu 0bd69ba059 Fix connack reason code when crash 2019-09-20 22:30:16 +08:00
terry-xiaoyu b29ceb9f6b Fix connack reason code when crash 2019-09-20 22:27:02 +08:00
terry-xiaoyu d0908bc70f Improve the pipeline error msg 2019-09-20 21:40:15 +08:00
terry-xiaoyu 9e1f1b22c3 Fix typo 2019-09-20 21:35:02 +08:00
terry-xiaoyu 1decab9369 Fix channel crash before CONNECT 2019-09-20 21:30:18 +08:00
zhouzb db1cf4469b Fix crash 2019-09-20 20:27:08 +08:00
tigercl b72a82e50b
Merge pull request #2919 from emqx/fix-test-cases
Add 'unregister_channel/1' function and test cases
2019-09-20 19:57:47 +08:00
Feng Lee d0a8086d73 Add 'unregister_channel/1' function and test cases 2019-09-20 19:42:59 +08:00
terry-xiaoyu 4d214fb6e2 Fix session not saved after maybe_resume_session 2019-09-20 18:28:44 +08:00
zhouzb f0a1ffc3b1 Fix test case 2019-09-20 17:58:31 +08:00
Feng Lee 6aac73f51f Fix the test case 't_handle_disconnect' 2019-09-20 16:48:21 +08:00
Feng Lee a9daa3c821 Fix the merge conflicts 2019-09-20 16:38:02 +08:00
terry-xiaoyu b5c9def06a Add testcases for print and usage 2019-09-20 16:18:24 +08:00
Feng Lee 1a3261b186
Merge branch 'develop' into remove-protocol-module 2019-09-20 16:17:44 +08:00
zhouzb 24bfaa768d Call emqx_flapping:detect and generate alarm when flapping is detected 2019-09-20 15:01:51 +08:00
zhouzb a9dd94b2b5 Improve mechanism of waiting for session to expire 2019-09-20 15:01:51 +08:00
terry-xiaoyu bd33441720 Fix the type specs for cmd usage 2019-09-20 14:55:11 +08:00
Feng Lee 3202ed2392 Improve the 'channel' module and add more test cases
- Rename the 'Client' field to 'ClientInfo'
- Remove the 'expiry_interval' from session record
- Add more test cases for emqx_zone module
- Add more test cases for emqx_banned module
- Add more test cases for emqx_message module
- Remove 'sockname', 'conn_mod' fields from type 'client'
2019-09-20 14:38:16 +08:00
Feng Lee 81e2f47126 Add test cases for emqx_ctl module 2019-09-20 13:47:05 +08:00
Feng Lee 3d6b96d321 Add function 'get_flags/1' for test 2019-09-19 11:19:10 +08:00
Feng Lee 65cb9dbf38 Add test cases for 'reason/1' 2019-09-19 11:16:13 +08:00
Feng Lee 3705f4f929 Rewrite the test cases for extended modules 2019-09-19 11:04:29 +08:00
Feng Lee 1d429dad8d Update the 'attrs/1' and 'handle_timeout/3' functions 2019-09-18 20:01:22 +08:00
Feng Lee 981afd38e3 Rewrite the 'presence' extended module 2019-09-18 19:58:12 +08:00
Feng Lee 8404fce6a6 Remove the function 'update_expiry_interval/2' 2019-09-18 19:49:34 +08:00
Feng Lee a313d1c722 Improve the 'open_session/3' API 2019-09-18 19:48:55 +08:00
Feng Lee 94c324d7a3 Rename 'get|set_property' fuctions to 'get|set' 2019-09-18 19:47:44 +08:00
Feng Lee cc79802d6c Add function 'get_caps/3' 2019-09-18 19:46:18 +08:00
Feng Lee ad7e0ae436 Use 'peerhost' to replace 'peername' 2019-09-18 19:44:28 +08:00
Feng Lee c8acd55afa Export type 'opts/0' 2019-09-18 19:19:42 +08:00
Feng Lee 50f392b295 Add more functions 2019-09-18 19:18:56 +08:00
Feng Lee 00f3a2f939 Use 'peerhost' to replace 'peername' 2019-09-18 19:17:30 +08:00
zhouzb decdce2ae2 Fix unused variable 2019-09-16 18:54:34 +08:00
zhouzb 600cd11f1f Rename connection to conninfo 2019-09-16 17:22:50 +08:00
zhouzb 1667cbd359 Fix test cases 2019-09-16 16:05:06 +08:00
tigercl fc553b8cee
Merge pull request #2803 from emqx/fix_msg_expiry
Fix Message-Expiry-Interval not working
2019-09-16 14:45:22 +08:00
Feng Lee 4764a7707c Rewrite the emqx_packet module and improve channel pipeline (#2903)
Add use_username_as_clientid/1 function and Improve function 'pipeline/3'
2019-09-16 14:17:36 +08:00
Feng Lee 681ae511a8 Introduce the 'strict_mode' option and validate MQTT header (#2898)
Introduce the 'strict_mode' option and validate MQTT header
2019-09-16 14:02:31 +08:00
tigercl 35822ff97a
Fix handling for MQTT spec (#2892)
Fix invalid QoS and protocol name, fix handling for Topic-Alias-Maximum and Maximum-Packet-Size, and send DISCONNECT Packet to client when the session is taken over
2019-09-16 13:51:50 +08:00
Shawn 59309e6c11
Add print and usage APIs for CLI (#2893) 2019-09-12 09:35:05 +08:00