Commit Graph

131 Commits

Author SHA1 Message Date
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 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 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
zhouzb 7512d6cb03 Check topic level for publish packet and optimize the handling of rap 2019-10-12 09:33:47 +08:00
Feng Lee e718fa8249 Rewrite the 'emqx_connection' module using a raw erlang process 2019-10-08 17:59:11 +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 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 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 b29ceb9f6b Fix connack reason code when crash 2019-09-20 22:27:02 +08:00
terry-xiaoyu 1decab9369 Fix channel crash before CONNECT 2019-09-20 21:30:18 +08:00
terry-xiaoyu 4d214fb6e2 Fix session not saved after maybe_resume_session 2019-09-20 18:28:44 +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
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
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
zhouzb 1667cbd359 Fix test cases 2019-09-16 16:05:06 +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
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
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 0a1679b122
Implement a new flapping module (#2884) 2019-09-10 15:21:08 +08:00
zhouzb 5a3645c97e Remove proto_ver field stored in the headers of message 2019-09-06 14:51:52 +08:00
zhouzb de44a89c21 Fix the issue that protocol is undefined 2019-09-05 18:28:17 +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 847375d2fb Improve connection and channel modules (#2860)
Improve the connection and channel modules
2019-09-05 14:17:15 +08:00
Feng Lee 08ab350fec Move the 'pipeline' function to 'emqx_misc' module 2019-08-28 14:29:44 +08:00
turtled 29d49b4073 Fix get connected_at is undefined 2019-08-23 20:37:04 +08:00
zhouzb 9c171f5d9c Fix a bug that session terminates immediately when received DISCONNECT packet 2019-08-23 16:08:26 +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
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
Feng Lee c69a2b1b48 Ensure session expiration (#2825)
Ensure session expiration
2019-08-23 09:35:29 +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 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 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
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
周子博 c2cd43ee18 Fix attrs 2019-08-10 00:37:45 +08:00
Feng Lee 439c481e35 Remove the trap_exit process_flag (#2737) 2019-08-09 16:02:50 +08:00
Feng Lee 03744ead30 Ensure the 'CONNACK' and 'DISCONNECT' packets delivered. 2019-08-09 15:09:17 +08:00
Feng Lee f8e28e39ed Improve the channel modules and fix the extension mods 2019-08-02 18:04:38 +08:00
Feng Lee c95a89ed1e Merge branch 'nchannel' into develop 2019-07-31 14:03:48 +08:00
Feng Lee c880668419 Register channel in this module 2019-07-30 19:11:21 +08:00
Feng Lee 32b2a01d68 Fix function_clause error and improve ws channel 2019-07-26 00:18:25 +08:00
Feng Lee 2de4bb0b8f Improve the channel modules and add 'attrs/1' API 2019-07-25 09:24:10 +08:00
Feng Lee 6b84eb0595 Rewrite the channel, protocol and session modules. 2019-07-22 17:08: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
terry-xiaoyu 5867b2e763 Fix idle_timeout crash 2019-07-11 09:17:23 +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
Feng Lee 4974eab20e Improve the channel design 2019-06-25 14:53:45 +08:00
Feng Lee 795fe4e0bc Add 'PUBLISH_PACKET(QoS, Topic, PacketId)' macro 2019-06-25 14:29:26 +08:00
Feng Lee 3877c4db1a Merge branch 'channel2' into channel3 2019-06-18 16:49:26 +08:00
Feng Lee 7774b85f81 Implement the channel architecture 2019-06-18 15:03:51 +08:00
terry-xiaoyu 7092748266 Improve log messages using logger header 2019-06-18 14:37:32 +08:00
Feng Lee 1d88f8fd9e Improve the emqx_connection, emqx_ws_connection and emqx_frame modules (#2611)
* Adopt channel architecture and improve the MQTT frame parser

* Update the test cases for emqx_channel, emqx_protocol

- Improve emqx_client to Use the new emqx_frame:parse/2
- Update the ct suites for emqx_channel, emqx_ws_channel

* Fix test case
2019-06-14 12:44:27 +08:00
Feng Lee d386b27e8a Adopt channel architecture and improve the MQTT frame parser 2019-06-11 23:18:38 +08:00