Commit Graph

2166 Commits

Author SHA1 Message Date
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
Feng Lee 80621ec9be Fix the test cases for emqx_banned, emqx_flapping modules
- Remove the 'is_enabled/1' function of 'emqx_banned' module
- Remove the 'is_enabled/1' function of 'emqx_flapping' module
- Add 'enable_acl/1', 'enable_banned/1' and 'enable_flapping_detect/1'
2019-09-11 09:14:58 +08:00
Feng Lee fa516626a6 Inlining is enabled for encode, decode functions. 2019-09-11 09:13:42 +08:00
Feng Lee 594153c0fb Merge branch 'boot' into develop 2019-09-10 16:26:20 +08:00
Feng Lee 2bf951d953 Fix the spec of function 'is_enabled/1' 2019-09-10 16:24:38 +08:00
Feng Lee a3daa533e7 Add a test case for the new flapping module 2019-09-10 16:20:56 +08:00
Feng Lee 0a1679b122
Implement a new flapping module (#2884) 2019-09-10 15:21:08 +08:00
Feng Lee 88321fe6fe Remove the emqx_config module
- Remove the emqx_config module
- Move get_env/1, get_env/2 to emqx module
2019-09-09 10:18:10 +08:00
Feng Lee 6972cbb36e Fix the operator precedence bug 2019-09-06 19:04:11 +08:00
Feng Lee b97f04ceae Add emqx_boot module 2019-09-06 17:37:50 +08:00
Feng Lee 6e18f8543d Add emqx_boot module 2019-09-06 17:36:13 +08:00
zhouzb 5a3645c97e Remove proto_ver field stored in the headers of message 2019-09-06 14:51:52 +08:00
Michael Schmidt 3038bd4570 Add support for logger per module filtering (#2873)
Add mfa to the meta data to suppor the Erlang Logger's per module / per app filtering
2019-09-06 11:03:47 +08:00
zhouzb 066763248c Fix dup flag 2019-09-05 18:35:29 +08:00
zhouzb de44a89c21 Fix the issue that protocol is undefined 2019-09-05 18:28:17 +08:00
terry-xiaoyu 1e4c51f080 Send DISCONNECT on packet parse error 2019-09-05 18:16:15 +08:00
zhouzb cc4ee065a4 Remove debug print 2019-09-05 16:16:19 +08:00
terry-xiaoyu 983973c841 Fix set_chan_stats incorrect 2019-09-05 15:59:18 +08:00
Feng Lee 451f0451ce Add type/1, qos/1 functions 2019-09-05 15:00:54 +08:00
Feng Lee 847375d2fb Improve connection and channel modules (#2860)
Improve the connection and channel modules
2019-09-05 14:17:15 +08:00
tigercl 811e85f8b7
Merge pull request #2841 from emqx/init_stats
Set stats at connection time
2019-09-05 14:03:51 +08:00
Feng Lee 2d6c7e41a5 Remove emqx_cli module 2019-09-02 09:04:34 +08:00
Feng Lee 62f0f0ccbc Add more test cases for 'emqx_misc' module 2019-08-28 14:29:44 +08:00
Feng Lee 08ab350fec Move the 'pipeline' function to 'emqx_misc' module 2019-08-28 14:29:44 +08:00
GilbertWong 783e29d6f7 Add test case for emqx_mod_rewrite 2019-08-28 11:19:51 +08:00
Feng Lee a4e9142979 Updat app file 2019-08-27 09:27:25 +08:00
zhouzb 98072dd3d1 Set stats at connection time 2019-08-26 16:43:08 +08:00
turtled 29d49b4073 Fix get connected_at is undefined 2019-08-23 20:37:04 +08:00
zhouzb 5cfd8b74bc Fix a bug that crash when protocol is undefined 2019-08-23 17:29:48 +08:00
zhouzb 9c171f5d9c Fix a bug that session terminates immediately when received DISCONNECT packet 2019-08-23 16:08:26 +08:00
zhouzb 970d243d94 Fix function clause 2019-08-23 15:23:00 +08:00
tigercl 7151ae9823
Merge pull request #2836 from emqx/fix-discard
Fix case clause error
2019-08-23 15:18:24 +08:00
Feng Lee 710302f377 Fix case clause error 2019-08-23 14:52:11 +08:00
tigercl ebc1bd77a9
Send the will message immediately when the network connection is closed by the client (#2834)
Send the will message immediately when the network connection is closed by the client
2019-08-23 14:41:52 +08:00
Feng Lee 738145677a Handle the 'discard' cast. 2019-08-23 14:31:33 +08:00
tigercl 9f7cc80c1a
Merge pull request #2833 from emqx/update_code
Update emqx_channel.erl
2019-08-23 14:09:42 +08:00
Feng Lee 82b9a7c301 Improve session takeover (#2831)
Implement the session takover/resumption across nodes
2019-08-23 14:09:00 +08:00
zhouzb 44d53ecb33 Update emqx_channel.erl 2019-08-23 13:48:17 +08:00
zhouzb f3a92f35f6 Handle will message correctly 2019-08-23 13:37:35 +08:00
zhouzb cff120c6d0 Handle session expiry interval correctly 2019-08-23 13:37:35 +08:00
Zhiwei Yu 8710df31b2 Monitor cluster partition event (#2814) 2019-08-23 09:42:55 +08:00
Feng Lee c69a2b1b48 Ensure session expiration (#2825)
Ensure session expiration
2019-08-23 09:35:29 +08:00
Feng Lee 41e9dad70a Rename `reason` field to `stop_reason` 2019-08-22 23:24:16 +08:00
zhouzb 7454e46934 Fix compile error 2019-08-22 16:59:13 +08:00
Feng Lee 8b03371a4a Improve the keepalive, connection, channel and session modules (#2813) 2019-08-22 16:38:25 +08:00
Mousse bf942e4bec Handle the retained flag correctly (#2811)
Handle the retained flag correctly
2019-08-22 16:21:27 +08:00
tigercl 201428279b
Merge pull request #2817 from emqx/test_emqx_config
Remove redundant code and add test case
2019-08-22 16:13:50 +08:00
GilbertWong 3f20bcf58f Relace emqx_client with emqtt 2019-08-22 14:27:29 +08:00
zhouzb 94c56b5e31 Remove redundant code and add test case 2019-08-21 14:12:34 +08:00
tigercl 749ef823ab
Refix code about mqtt spec (#2806)
Refix code about mqtt spec
2019-08-19 10:50:52 +08:00
Feng Lee f2b552e29e Ensure stats timer 2019-08-19 09:43:58 +08:00
Feng Lee ae33b6037e Fix the test suites. 2019-08-17 14:39:04 +08:00
Feng Lee 52b2f31ced Merge branch 'improve-channel-design-again' into develop 2019-08-17 14:09:26 +08:00
Feng Lee f26505d40a Implement session takeover and resumption.
- Implement session takeover
- Remove `init_proc_mng_policy/1' from emqx_misc module
- Remove `conn_proc_mng_policy/1' from emqx_misc module
- Add `emqx_oom' module to monitor OOM of channel process
2019-08-17 13:37:48 +08:00
tigercl c1fd5f89f1 Make codes compliance with mqtt protocol specifications (#2790)
* Make codes compliance with mqtt protocol specifications

* Fix test case

* Remove emqx_protocol:puback/4
2019-08-17 09:15:43 +08:00
terry-xiaoyu fa1adf5cfb Fix Message-Expiry-Interval not working 2019-08-16 18:27:22 +08:00
tigercl 2e26cd244a Improve test coverage (#2799)
* Improve test coverage

* Improve test coverage for emqx_cm

* Improve test coverage for emqx_cm_registry

* Fix emqx_client_SUITE
2019-08-16 18:25:49 +08:00
Feng Lee d63eccd8b8 Add test cases for emqx_keepalive module (#2784)
* Improve the keepalive module
2019-08-16 18:24:39 +08:00
Gilbert 79744af681 Wrapper proper test cases into common test cases (#2785)
* Wrapper proper test cases into common test cases

* Improve test cases for reason code module (#2789)

* Split 3 proper tests into 3 ct cases

* Improve test cases for client, rpc and request-response

* Add psk suites to increase coverage

* Add sys test cases
2019-08-16 18:07:12 +08:00
JianBo He 8e401968f2 Add testcase for emqx_mod_sup 2019-08-16 17:48:37 +08:00
Shawn b2ddcb26e2
Testcase logf (#2800)
* Add test cases for logger formatter

* Remove the unregister API
2019-08-16 15:11:38 +08:00
Feng Lee 444972968f Improve emqx_mqtt_props module and add test cases 2019-08-12 14:29:38 +08:00
周子博 c2cd43ee18 Fix attrs 2019-08-10 00:37:45 +08:00
terry-xiaoyu 0c24bfd78c Make emqx_tracer more reliable 2019-08-09 19:59:39 +08:00
周子博 f6d6f7f04d Fix test case 2019-08-09 19:45:43 +08:00
terry-xiaoyu 77616f4721 Add hook client.disconnected 2019-08-09 19:25:14 +08:00
terry-xiaoyu a19777c2e6 Add hook message.acked 2019-08-09 19:12:56 +08:00
turtled a93f8c6788 Fix auth fail 2019-08-09 17:37:55 +08:00
turtled 31cc446818 Mountpoint support %c and %u 2019-08-09 16:54:49 +08:00
turtled 91a8dbda56 Fix conflicts 2019-08-09 16:41:11 +08:00
周子博 d8bcb1b26f Don't check cpu util on Alpine that uses libc-musl 2019-08-09 16:10:30 +08:00
GilbertWong 6e0a269ff6 Wrap `os:type` for cpu:sup call 2019-08-09 16:04:38 +08:00
Feng Lee 439c481e35 Remove the trap_exit process_flag (#2737) 2019-08-09 16:02:50 +08:00
Shawn 68bf72ce04 Fix crashes when auth failed (#2736) 2019-08-09 16:02:04 +08:00
terry-xiaoyu cca725db5f Add specs for emqx_logger 2019-08-09 15:47:20 +08:00
Feng Lee 3032731a2d Publish will msg when abnormal terminate 2019-08-09 15:28:47 +08:00
Feng Lee 03744ead30 Ensure the 'CONNACK' and 'DISCONNECT' packets delivered. 2019-08-09 15:09:17 +08:00
Feng Lee 52a85d9bb9 Export name/1 2019-08-09 15:09:17 +08:00
Feng Lee a324965240 Add more test cases for emqx_protocol module 2019-08-09 14:29:49 +08:00
Gilbert abb4b07665
Add session proper test cases (#2768)
* Add session proper test cases
* Remove useless mockers
2019-08-09 14:15:34 +08:00
GilbertWong 61ee889113 Fix client bug 2019-08-09 13:40:07 +08:00
Feng Lee 916afc1c74 Add test cases for emqx_protocol module
- Add emqx_session:info/2 for unit tests
- Add emqx_protocol:set/3 for unit tests
- Fix the `check_sub/3` of emqx_mqtt_caps
2019-08-09 11:33:52 +08:00
Feng Lee a2d5b834da Improve emqx_pmon module and add more test cases 2019-08-08 22:42:45 +08:00
Feng Lee 6513a32d37
Merge pull request #2766 from emqx/improve-mqtt-caps-module
Improve mqtt caps module
2019-08-08 22:35:32 +08:00
Feng Lee f70da696f0 Fix the badmatch error 2019-08-08 22:33:40 +08:00
GilbertWong 1707c7a7b7 Remove replayq from app.src list 2019-08-08 17:08:19 +08:00
周子博 0d65deb9d3 Fix not registering channels in time 2019-08-08 16:59:17 +08:00
Feng Lee bd061415c9 Rewrite the emqx_mqtt_caps module and add test cases
- Rename `mqtt_retain_available` to `retain_available`
- Rename `mqtt_wildcard_subscription` to `wildcard_subscription`
- Rename `mqtt_shared_subscription` to `shared_subscription`
- Add `emqx_zone:unset_env/2` API for unit test
2019-08-08 14:11:26 +08:00
Feng Lee bfd027cf8b Rewrite the mqtt_caps module 2019-08-07 14:01:50 +08:00
Gilbert 96b341fde5
Add proper tests for base62 (#2761)
* Add proper tests for base62

* Delete useless comment
2019-08-07 09:24:03 +08:00
Feng Lee f60f127681 Improve the moudules and fix the bugs found in new test cases
- Fix the bug that emqx_mountpoint:unmount/2 will throw exception
- Add emqx_banned:info/1 for test cases
- Rename macro TRIE in emqx_trie module to TRIE_TAB
- Rename macro TRIE_NODE in emqx_trie module to TRIE_NODE_TAB
- Rename macro ROUTE in emqx_router module to ROUTE_TAB
2019-08-06 09:05:55 +08:00
Feng Lee 4afa02ee48 Update all the test cases 2019-08-06 09:04:37 +08:00
Feng Lee f8e28e39ed Improve the channel modules and fix the extension mods 2019-08-02 18:04:38 +08:00
Feng Lee 32795321f5 Improve the rewrite mod using the new hooks 2019-08-02 11:14:42 +08:00
Feng Lee cf9caf3c32 Add conn/0 type 2019-08-02 11:14:42 +08:00
Feng Lee 2fdda99d6d Improve the pipeline design of protocol and session 2019-08-02 11:14:42 +08:00
周子博 ef9cbe51eb Fix conflict 2019-08-02 10:41:46 +08:00
Feng Lee c95a89ed1e Merge branch 'nchannel' into develop 2019-07-31 14:03:48 +08:00
Feng Lee 0a6468cf48 Introduce the 'pipeline' design pattern
- Introduce the 'pipeline' design pattern in emqx_protocol module
- Reame the '{dispatch, ...' to '{deliver, ...' in emqx_broker module
- Rename type 'credentials' to 'client'
2019-07-31 08:09:47 +08:00
Feng Lee b32156bd68 Rename the type 'credentials' to 'client' 2019-07-31 08:08:11 +08:00
Feng Lee 41dfbd4165 Add 'packets.pubrec.inuse' counter 2019-07-30 19:12:42 +08:00
Feng Lee c880668419 Register channel in this module 2019-07-30 19:11:21 +08:00
Feng Lee 51fb4e33d6 Rename 'Credentials' to 'Client' 2019-07-30 19:10:38 +08:00
terry-xiaoyu 20a7ed6f53 RPC batch 2019-07-29 09:35:06 +08:00
Feng Lee c55ada3526 Improve the types 2019-07-27 23:24:38 +08:00
Feng Lee d99c9daf76 Replace credentials with client 2019-07-27 23:22:02 +08:00
terry-xiaoyu b0e2b7db0c Support inter-node messages via RPC cast 2019-07-27 12:59:07 +08:00
terry-xiaoyu 11fdf101f0 Configurable rpc client number 2019-07-26 15:13:58 +08:00
Feng Lee 32b2a01d68 Fix function_clause error and improve ws channel 2019-07-26 00:18:25 +08:00
Feng Lee 64148ac0e8 Improve the 'info/1', 'attrs/1' and 'stats/1' APIs 2019-07-25 09:26:36 +08:00
Feng Lee b4a0a1c228 Fix whitespace 2019-07-25 09:26:02 +08:00
Feng Lee 5b3a61b799 Merge the connection and session tabs into channel tab 2019-07-25 09:25:45 +08:00
Feng Lee a0a2375810 Update the .app file 2019-07-25 09:25:00 +08:00
Feng Lee 2de4bb0b8f Improve the channel modules and add 'attrs/1' API 2019-07-25 09:24:10 +08:00
Feng Lee c091e89796 Remove the unnecessary include/emqx_client.hrl 2019-07-23 10:56:14 +08:00
Feng Lee 6b84eb0595 Rewrite the channel, protocol and session modules. 2019-07-22 17:08:53 +08:00
terry-xiaoyu 0569388f0f Fix websocket still send willmsg even after disconnect is received 2019-07-20 19:02:49 +08:00
terry-xiaoyu 4559b5023e Fix heartbeat interval 2019-07-20 16:20:53 +08:00
terry-xiaoyu 721e7c4804 Fix session termiated without ws_channel 2019-07-20 14:24:15 +08:00
terry-xiaoyu 0c54d899da Trap and handle exit in channel and ws_channel 2019-07-20 13:19:13 +08:00
Gilbert 05b660ff50 Unlink session when exit message has been forwarded to session (#2703)
* Unlink session when exit message has been forwarded to session

* Readjust possition of emqx_protocol:session
2019-07-20 13:05:34 +08:00
GilbertWong eb68ce77b6 Fix the ws channel terminating crash when session pid is undefined 2019-07-19 17:36:50 +08:00
GilbertWong 391e39c3b6 Disable the useless error log info 2019-07-19 17:36:50 +08:00
GilbertWong 0c14484b0a Disable the useless error log info 2019-07-19 17:36:50 +08:00
GilbertWong 953d320667 Implement better websocket exit mechanism 2019-07-19 17:36:50 +08:00
terry-xiaoyu 86333802b9 Add configuration for sys_heartbeat 2019-07-19 17:33:24 +08:00
GilbertWong 4603ea17ef Better gen_rpc performance 2019-07-19 17:31:15 +08:00
GilbertWong eb7ae13ae9 Better exit reason in websocket channel 2019-07-16 01:33:15 +08:00
GilbertWong 1fc0f61fbb Fix the websocket normal exit bug 2019-07-16 01:09:42 +08:00
Feng Lee 7b27d49a40 Add new metric 'channel.gc.cnt' 2019-07-14 08:59:38 +08:00
terry-xiaoyu 7472e531b1 Remove log handler for alarms 2019-07-11 13:27:03 +08:00
terry-xiaoyu 1bf68f4807 Change clear alarms to info log 2019-07-11 11:15:23 +08:00
GilbertWong bf89646d93 Fix typo 2019-07-11 09:43:52 +08:00
GilbertWong 234037aee1 Fix will message mechanism for websocket channel 2019-07-11 09:43:52 +08:00
GilbertWong c13e194838 Fix the check_subacl bug when enable_acl is set to false 2019-07-11 09:25:20 +08:00
terry-xiaoyu 5867b2e763 Fix idle_timeout crash 2019-07-11 09:17:23 +08:00
terry-xiaoyu 6ab9527603 Optimize to_map for performance 2019-07-05 23:14:27 +08:00
Gilbert 70be888f3b Compat windows (#2665) 2019-07-05 23:10:13 +08:00
周子博 61d64cbb83 Fix the issue that emqx_session:attrs/1 returns wrong value 2019-07-05 22:54:57 +08:00
Feng Lee f4a753f683 Remove the debug print of batch deliver 2019-07-02 14:50:13 +08:00
Feng Lee 8c37ea3f38 Fix conflict 2019-07-02 14:02:42 +08:00
Feng Lee 42da51e1c5 Implement batch delivery for the new channel design
- Implement a new emqx_channel module
- Improve the emqx_frame:serialize/2 API
- Improve the emqx_connection, emqx_ws_connection modules
2019-07-02 13:40:52 +08:00
Feng Lee 177dc44155 Define 'Otherwise' macro 2019-07-02 13:39:23 +08:00
周子博 3ad5700442 Support getting the history of alarms 2019-06-29 12:38:57 +08:00
terry-xiaoyu 96fff39535 Change default logger level to warning 2019-06-28 21:34:21 +08:00