Commit Graph

1479 Commits

Author SHA1 Message Date
Gilbert Wong c890792613 Fix the init_proc_mng_policy bug
Prior to this change, when the plugin like emqx_sn_gateway which has
no zone run the init_proc_mng_policy function, it would trigger error
and application crash.

This change add a case to avoid crash.
2018-10-17 17:24:05 +08:00
周子博 29beb42aa2 Using client id rather then session pid 2018-10-10 14:00:17 +08:00
tigercl 40251a034c
Merge branch 'improve_connect' into emqx30 2018-10-09 18:03:22 +08:00
Gilbert Wong d36a34fb59 Fix topic_name validation bug
Prior to this change, Prior to this change, the validation for the mqtt5.0 publish packet
which both contains zero-length topic name and topic alias is wrong.
2018-10-09 17:45:40 +08:00
周子博 b80ba6e458 Fix bug when ConnProps is undefined 2018-10-09 14:19:22 +08:00
周子博 9bcd4c3e08 improve will message 2018-10-09 13:35:27 +08:00
Gilbert Wong 52eae65983 Fix topic_name validation bug
Prior to this change, Prior to this change, the validation for the mqtt5.0 publish packet
which both contains zero-length topic name and topic alias is wrong.

This change fix this bug.
2018-10-08 20:02:32 +08:00
spring2maz e3f2ae8db8 Change from customized total heap size check to set process flag
The `max_heap_size` process flag can be used to limit total
heap size of a process, and it gives much more detailed
crash log if the limit is hit.
2018-09-29 21:36:34 +08:00
周子博 1705f25db6 Fix bug in session expiry interval 2018-09-29 21:30:22 +08:00
周子博 1638aff0f9 Remove duplicate match 2018-09-29 14:47:21 +08:00
周子博 59798762a9 Remove will message when received disconnect packet with reason code 0x00 2018-09-29 14:47:21 +08:00
周子博 2d354ca883 Improve topic alias maximum in connect packet 2018-09-29 14:47:21 +08:00
周子博 064db65206 improve receive maximum in connect packet 2018-09-29 14:47:21 +08:00
spring2maz 3bab3cbd2a Shared subscriber should be keyed by SharedName + Topic
Prior to this change, if a producer session produces to two
or more shared subscriber groups, the previously picked subscriber
for sticky strategy may not be a valid member for the next group.
2018-09-28 09:37:51 +08:00
HuangDan 96b5d71a67 Fix args errors on emqx_hook:run('message.acked') 2018-09-27 11:49:23 +08:00
spring2maz 8a8729f9ea Make rebar3 xref work.
Fixed a bad call in emqx_mod_subscription module
also commented out dead code for now in emqx_config.erl
2018-09-25 22:09:13 +08:00
HuangDan 5dfd431040 Fix typo 2018-09-22 19:40:07 +08:00
turtleDeng 925e98a3e5
Merge pull request #1823 from emqx/add-shared-sub-strategy
Add new shared subscription dispatch strategy
2018-09-22 19:30:08 +08:00
周子博 4336b7c9a0 Fix bug in issue#1848 2018-09-22 18:23:56 +08:00
turtled 5afaac4641 Add emqx_broker:subscribe/3 defult qos 2018-09-22 18:03:05 +08:00
spring2maz b35d37c92d Add new shared subscription dispatch strategy
'random' was already there before this change
Added two new strategies: 'sticky' and 'round_robin'
'sticky' is made default as it is the cheapest
2018-09-22 10:50:34 +02:00
turtleDeng 8f35d13e17 Improve bridges design (#1849)
Improve the design of bridges
2018-09-22 16:19:28 +08:00
turtled 475f2a87c6 Rm emqx_ctl set|show cmds 2018-09-22 16:17:21 +08:00
tigercl 03f607c1b2 Fix issue#1833 and #1834 (#1845) 2018-09-22 16:10:24 +08:00
turtleDeng 8653732bae Revert "Calculate the 1.5 keep alive time exactly" 2018-09-22 14:52:31 +08:00
Feng Lee 02ddcf37cd
Merge branch 'emqx30' into more-gc-enforcement-policies 2018-09-22 06:35:11 +08:00
Feng Lee ee7a7e2479
Fix typo 2018-09-22 06:05:29 +08:00
Feng Lee 33f9e895ad
Merge branch 'emqx30' into more-gc-enforcement-policies 2018-09-22 05:52:41 +08:00
Feng Lee fbac9ce43e Improve the foce_gc_policy config. 2018-09-22 05:42:38 +08:00
spring2maz b61615323b Move shutdown policy config to zone configs 2018-09-21 18:58:18 +02:00
spring2maz f70d16e387 Add a test case to cover timeout message flush in emqx_misc 2018-09-21 18:58:18 +02:00
spring2maz 6fca651a84 Add connection/session shutdown policy
The hibernation behaviour is also changed (implicitly) in this commit:
Prior to this change, connection/session always hibernates after
the stats timer expires regardless of messages in mailbox.
After this commit, connection/session process only goes to hibernate
when the timer expires AND there is nothing left in the mailbox to
process
2018-09-21 18:58:18 +02:00
spring2maz 721f237bc4 Rewrite emqx_gc.erl
The implementation prior to this commit supports
only one gc enforcement policy which is message count threshold.
The new implementation introduces 1 more: volume threshold based
2018-09-21 22:56:34 +08:00
turtleDeng 98758752d4
Merge pull request #1839 from tigercl/emqx30
Calculate the 1.5 keep alive time exactly
2018-09-21 20:05:10 +08:00
terry-xiaoyu 389b3c80bc Fix the message delivery to remote 2018-09-21 20:00:43 +08:00
周子博 ab2697671a Change the location of the recording last packet timestamp 2018-09-21 19:59:32 +08:00
周子博 aade94711c Use process dictionaries to record last packet timestamp 2018-09-21 18:50:26 +08:00
周子博 768d1786c7 Fix bug 2018-09-20 15:55:36 +08:00
周子博 073bf481c9 Calculate the 1.5 keep alive time exactly 2018-09-20 15:51:28 +08:00
spring2maz e940c1c970 Rewrite emqx_gc.erl
The implementation prior to this commit supports
only one gc enforcement policy which is message count threshold.
The new implementation introduces 1 more: volume threshold based
2018-09-19 21:08:16 +02:00
HuangDan 3822ff987b Fix function args
Add test cases for emqx_pool module
2018-09-18 09:15:46 +08:00
Feng Lee ec061f7a21 Merge branch 'emqx30' of github.com:emqx/emqx into emqx30 2018-09-16 20:50:35 +08:00
Feng Lee 69e5869fa0 Add submit/2, async_submit/2 functions for emqx_pool module. 2018-09-16 20:49:47 +08:00
周子博 5eb92e37cc Remove check for MQTT path, and normalize code 2018-09-14 11:49:17 +08:00
周子博 5465b015be Add test case for last change 2018-09-14 11:49:17 +08:00
周子博 6f536eaac4 Add customized mqtt path for websocket 2018-09-14 11:49:17 +08:00
周子博 0c6a268539 Set default value of message expiry interval for not mqtt 5.0 message 2018-09-14 11:49:17 +08:00
周子博 88b3460715 Add feature for issue#1809 2018-09-14 11:49:17 +08:00
Gilbert Wong 45b2686e1c Delete unnecessary code
Prior to this change, there are multiple deprecated functions.
2018-09-14 09:45:34 +08:00
HuangDan fde6a2a4c3 Fixed issue #1811
Add tests case for issue #1811
2018-09-13 22:55:15 +08:00
spring2maz 8db9f3e81d Update & clarify module doc for emqx_mqueue.erl 2018-09-13 09:08:07 +08:00
spring2maz 0c39a7620e Rebar3 and erlang.mk dual support. (#1806)
* Rebar3 and erlang.mk dual support.

There was only erlang.mk support prior to this change.
The main reasons for this dual support are:
* Cover report upload can only be done by rebar3 in travis.ci
* We want to prepare for the future to build emqx releases using rebar3
* We do not want to stop supporting erlang.mk in one single step

* Add depencency version consistency check between erlang.mk and rebar.config
2018-09-09 21:51:42 +08:00
周子博 3caa41f751 Add run hook when duplicated subscription 2018-09-08 19:01:03 +08:00
周子博 23c91c0a40 no message 2018-09-08 18:31:44 +08:00
周子博 40977e529a Retain flag in retained message must set to 1 2018-09-08 18:31:44 +08:00
Gilbert Wong 78020de302 fix pattern match bu
Prior to this change, when packet have topic alias, the check_pub_caps
function could not be matched correctly

This change fix this bug.
2018-09-08 12:50:14 +08:00
Gilbert Wong 2d10d6971d add pattern match for topic alias
Prior to this change, it assume that topic_alias exists defaultly
which may cause the unexpected bug

This change fix this bug above
2018-09-08 12:01:22 +08:00
terry-xiaoyu 2121da3755 Ignore Will-Delay-Interval = 0 2018-09-08 10:10:22 +08:00
turtleDeng 0ec461484e
Merge pull request #1790 from emqx/emqx30-feng
Improve the Hooks' design
2018-09-07 21:46:30 +08:00
turtleDeng 66e9f9b02a
Merge pull request #1789 from Gilbert-Wong/emqx30
Check topic alias
2018-09-07 21:44:20 +08:00
turtleDeng 5ca61dd45c
Merge pull request #1788 from tigercl/emqx30
Support retain as published in subscription options
2018-09-07 21:43:56 +08:00
Gilbert 84e43c587d
Merge branch 'emqx30' into emqx30 2018-09-07 18:49:11 +08:00
周子博 6f6e24592b Fix the reverse match 2018-09-07 18:32:03 +08:00
turtleDeng ba176f2073
Merge pull request #1797 from terry-xiaoyu/banned_api_v2
Update for banned API
2018-09-07 17:50:30 +08:00
周子博 1326e89593 Fix a bug in emqx_protocol.erl 2018-09-07 15:16:32 +08:00
terry-xiaoyu dd8513ad35 Update for banned API
Use `mnesia:foldl` to traverse mnesia rather than `mnesia:first` and
`mnesia:next`, as a badarg exception would occur if the record was
deleted while travering the whole table.
2018-09-07 14:10:16 +08:00
周子博 f8471afb97 Add handling of retain handling subscription option 2018-09-07 13:50:12 +08:00
Feng Lee 304a24ca6a Code Review: Update the zone module
1. Add force_reload/0 management API
2. Change the reload interval to 5 minutes
2018-09-07 10:26:14 +08:00
Feng Lee d9ad29476a Code Review: Update the zone module
1. Add force_reload/1 API
2. Change the default reload interval to 5 minutes
2018-09-07 10:23:43 +08:00
周子博 d819ec0b58 Comment unused function in emqx_frame.erl 2018-09-07 10:18:21 +08:00
Gilbert Wong 765ab5ad7b Add condition to handle when mqx_topic_alias do not exist 2018-09-06 19:09:29 +08:00
Feng Lee 328d035dab Replace 'state' record with map 2018-09-06 18:43:47 +08:00
周子博 f95c82e37a Add metric for DISCONNECT packet 2018-09-06 18:14:14 +08:00
Feng Lee edf654727c Rename emqx_mqtt_properties module to emqx_mqtt_props 2018-09-06 18:09:22 +08:00
Feng Lee d99d0a22d0 Rename 'ignore' to 'ignored' 2018-09-06 17:54:32 +08:00
周子博 917eb8e29f Make DISCONNECT packet with reason code 0x00 when this packet doesn't have payload 2018-09-06 17:17:09 +08:00
Feng Lee 2a75105580 Improve the Hooks's design 2018-09-06 16:27:16 +08:00
Gilbert Wong c145cb89f4 add validate_properties for PUBLISH and fix error for SUB 2018-09-06 15:45:18 +08:00
周子博 42b3c9b4d6 Send DISCONNECT packet with reason code PROTOCOL_ERROR when topic is empty, add checks for topics 2018-09-06 14:47:34 +08:00
Gilbert Wong 9189d4ff41 catch topic_alias_invalid reasoncode 2018-09-06 14:24:07 +08:00
Gilbert Wong 876a983e93 Pub Packet delivered from client to server cannot contain sub id 2018-09-06 13:37:26 +08:00
Feng Lee 5e3aed0b73 Add ok_or_error/1 type 2018-09-06 09:10:47 +08:00
Feng Lee 4635921458 Rewrite the hooks module 2018-09-05 23:21:06 +08:00
Gilbert Wong c8b92a59b1 check topic alias 2018-09-05 19:06:34 +08:00
周子博 9029ee29d3 Drop will msg when receive the DISCONNECT packet whose reason code is equal to 0x00 2018-09-05 18:03:28 +08:00
周子博 47955f4309 fix bug in retain as published flag 2018-09-05 15:18:26 +08:00
周子博 aa34258f1e Support Retain As Published in Subscription Options 2018-09-05 14:25:33 +08:00
周子博 f0f818ab1a Fix bug in emqx_frame 2018-09-05 10:28:49 +08:00
Feng Lee 96122cf966 Rename 'already_existed' to 'already_exists' 2018-09-04 19:14:25 +08:00
周子博 842f4fbf13 Crash when reserved flag in CONNECT packet doesn't equal to 0, and remove repeated check for protocol version 2018-09-04 11:16:15 +08:00
chenyy abc6081282 fix error spelling word 2018-09-01 11:54:28 +08:00
terry-xiaoyu ec456dcc73 Fix dialyze issue 2018-08-31 20:48:57 +08:00
terry-xiaoyu 3f42f1271b bug fix 2018-08-31 18:14:10 +08:00
Feng Lee 880c6ab5fe Fix typo 2018-08-31 17:27:36 +08:00
Feng Lee ec7b39f3fd
Merge pull request #1777 from emqtt/emqx30-dialyzer
Add banned support, and fix dialyzer errors
2018-08-31 16:58:57 +08:00
Feng Lee 7c45d988f2 Update the spec of deliver/2 function 2018-08-31 16:57:43 +08:00
Feng Lee ea1ae70833 Fix errors found by dialyzer 2018-08-31 16:46:51 +08:00
Gilbert Wong e6fd7faa4b add format_variable for disconnect packet 2018-08-31 16:24:10 +08:00
Feng Lee 3045ec10ab Add banned feature 2018-08-31 14:04:26 +08:00
Feng Lee 237e65a4e0 Use emqx_mqueue:init/1 to create a mqueue 2018-08-31 10:22:16 +08:00
terry-xiaoyu 23e72feab7 fix reason codes 2018-08-31 01:54:25 +08:00
terry-xiaoyu 9406bc1fd1 fix typo 2018-08-31 01:39:56 +08:00
Feng Lee aa1334313c Merge branch 'emqx30' of github.com:emqtt/emqttd into emqx30 2018-08-31 01:22:55 +08:00
Feng Lee 25391e8c71 Rename 'Subscription-Identifiers-Available' to 'Subscription-Identifier-Available' 2018-08-31 01:22:03 +08:00
Gilbert Wong 748826bdee update access sutie and access control 2018-08-31 01:16:54 +08:00
Feng Lee dc9a1cd80f Format emqx_protocol module 2018-08-31 00:48:23 +08:00
Feng Lee 1574d85570
Merge pull request #1775 from emqtt/emqx30-feng
Support server_keepalive and CONNACK properties
2018-08-31 00:45:51 +08:00
Feng Lee 07f13db453 Fix conflict 2018-08-31 00:41:48 +08:00
Feng Lee b6006b5947 Support CONNACK properties 2018-08-31 00:40:10 +08:00
Gilbert Wong 1c94566141 add topic alias validate 2018-08-30 23:49:08 +08:00
Feng Lee 3131acd3bc
Merge branch 'emqx30' into emqx30-feng 2018-08-30 23:41:26 +08:00
Feng Lee 674b55e6e7
Merge pull request #1773 from tigercl/emqx30
Add emqx_banned test suite, and fix bugs in emqx_banned
2018-08-30 23:35:15 +08:00
Feng Lee 0379219a04 Improve the design of session discard 2018-08-30 23:14:09 +08:00
周子博 83e11b6e39 Add emqx_banned test suite, and fix bugs in emqx_banned 2018-08-30 22:45:08 +08:00
terry-xiaoyu fb8a86c5e0 delayed will message 2018-08-30 21:58:02 +08:00
terry-xiaoyu cf0f55d057 delayed will message 2018-08-30 21:44:00 +08:00
Feng Lee 4a1fdddc31
Merge pull request #1771 from emqtt/emqx30-feng
Only store packet_id and timestamp for qos2 message
2018-08-30 21:26:01 +08:00
Feng Lee 78a8ccd0f2 Only store packet_id and timestamp for qos2 message 2018-08-30 21:17:20 +08:00
Feng Lee dd7f0dec3c Add 'messages/qos2/expired' counter 2018-08-30 21:01:09 +08:00
Gilbert Wong 2fc41b6935 fix reason code name for mqtt 4 2018-08-30 19:09:22 +08:00
Feng Lee cae673cf5e Fix update_expiry/1 function_clause 2018-08-30 18:59:47 +08:00
Feng Lee 826daace61 Align the state record 2018-08-30 18:44:58 +08:00
Feng Lee c49e5dfddc
Merge branch 'emqx30' into emqx30-feng 2018-08-30 18:42:29 +08:00
Feng Lee 553a60cdec Update 'Message Expiry Interval' property before delivering a PUBLISH 2018-08-30 18:31:37 +08:00
Feng Lee 7b5f2577d3 Support message ttl and expiration 2018-08-30 18:30:33 +08:00
Feng Lee 1f2bbe3eb8 Support priority queue 2018-08-30 18:29:20 +08:00
Feng Lee a67958adb4 Add 'messages/expired' counter 2018-08-30 18:28:40 +08:00
Feng Lee 021d43755f Add update_expiry/1 function 2018-08-30 18:28:02 +08:00
terry-xiaoyu 8a5519cafa attrs for ws_connection 2018-08-30 14:32:31 +08:00
Gilbert Wong b0ed953708 fix emqx_session:unsubscribe bug 2018-08-30 13:56:55 +08:00
Feng Lee 2ccec1f719 Merge branch 'emqx30' into emqx30-feng 2018-08-30 11:54:49 +08:00
Feng Lee 2342a7db6d Rename 'Pid' to 'ConnPid' 2018-08-30 11:48:49 +08:00
Feng Lee 2db64cf53c Support 'Message-Expiry-Interval property 2018-08-30 11:42:24 +08:00
Feng Lee 2351b41f11 Add is_expired/1, check_expiry/1, check_expiry/2 2018-08-30 11:40:53 +08:00
turtled d3ed0853ef Rename bridge module 2018-08-30 10:41:04 +08:00
Feng Lee da1285ad3c Merge branch 'emqx30' into emqx30-feng 2018-08-30 09:45:29 +08:00
Feng Lee 53a2f93b7e Add emqx_connection:attrs/1, emqx_protocol:attrs/1, emqx_session:attrs/1 APIs 2018-08-30 03:03:19 +08:00
Feng Lee 98824a56c2 Remove emqx_flow_control module 2018-08-30 00:28:11 +08:00
Feng Lee 22f8302f98 Merge branch 'emqx30-feng' of github.com:emqtt/emqttd into emqx30-feng 2018-08-30 00:03:59 +08:00
Feng Lee a282c7625e Add properties for delivered messages 2018-08-30 00:03:38 +08:00
Feng Lee 8492513094
Merge branch 'emqx30' into emqx30-feng 2018-08-29 23:11:24 +08:00
Feng Lee 567aeb274f Define types in emqx_types, emqx_mqtt_types modules 2018-08-29 23:08:55 +08:00
turtled 98698d318f ws disconnect call emqx_protocol:shutdown 2018-08-29 21:39:09 +08:00
turtled d6f3ae640d Merge branch 'emqx30' of https://github.com/emqtt/emqttd into emqx30 2018-08-29 20:29:12 +08:00
turtled 1629215b18 Fix hook args bug 2018-08-29 20:29:03 +08:00
周子博 f4330b8af3 Add some test suites and fix bugs 2018-08-29 19:19:22 +08:00
Feng Lee 2dc8f9c4c5 Merge branch 'emqx30-feng' of github.com:emqtt/emqttd into emqx30-feng 2018-08-29 17:55:13 +08:00
Feng Lee e62d215792 Shutdown and reboot ranch application 2018-08-29 17:52:55 +08:00
Feng Lee 465963fec3
Merge branch 'emqx30' into emqx30-feng 2018-08-29 17:36:38 +08:00
Feng Lee 1a7d60a7e3 Improve the hooks design for emqx 3.0 2018-08-29 17:27:56 +08:00
terry-xiaoyu c967db409f EMQX 3.0 UT 2018-08-29 15:50:56 +08:00
turtled dae81037bf Update share_sub dispatch 2018-08-29 12:58:55 +08:00
turtled 9711892f73 Fix share_sub disconnect not clear route bug 2018-08-29 10:58:34 +08:00
turtled af21cdfd1b Rm tmp var 2018-08-29 10:08:15 +08:00
turtled 00cb26c4e0 Support ws mqtt any version 2018-08-29 10:00:41 +08:00
turtled 013a5a9c7c Fix emqx_protocol:clientid undefined 2018-08-29 09:30:18 +08:00
Feng Lee 594819b752 Upgrade the publish sequence of QoS1/2 messages 2018-08-29 02:53:22 +08:00
Feng Lee 1cf4532947 Add emqx_mountpoint module 2018-08-28 20:40:31 +08:00
周子博 545e80cd6b Add some test suites 2018-08-28 17:53:03 +08:00
Feng Lee 8e11845f87 Remove ignore_loop_deliver option 2018-08-28 07:36:22 +08:00
terry-xiaoyu c92eba4a5e bug fixes during UT 2018-08-28 00:27:45 +08:00
Gilbert 88d867b256
Merge pull request #1750 from Gilbert-Wong/emqx30
update emqx_broker_suite to adapt emqx 3.0 broker
2018-08-27 21:56:00 +08:00
Feng Lee 475319b907 Merge emqx30-feng branch 2018-08-27 21:36:43 +08:00
Feng Lee 1607e576de Update connection, session, stats modules 2018-08-27 21:34:11 +08:00
Gilbert Wong ce3f2e4d9e fix emqx_broker test suite 2018-08-27 21:18:00 +08:00
Gilbert Wong 015901050f change return tuple of close_session 2018-08-27 18:19:28 +08:00
Gilbert Wong 224aaaf8a7 unsubscribe function should have two params 2018-08-27 17:11:54 +08:00
Gilbert Wong c5da439313 wrong unsubscribe call 2018-08-27 16:41:58 +08:00
Feng Lee d167a5c99a
Merge pull request #1748 from emqtt/emqx30-feng
Improve the emqx_listeners module
2018-08-27 16:24:59 +08:00
Feng Lee a19daee353 Improve the print of listener startup 2018-08-27 16:19:58 +08:00
turtled 35d821a62e Add WS stats 2018-08-27 16:15:23 +08:00
Feng Lee 42288ac412 The ACL file should not be undefined 2018-08-27 15:57:13 +08:00
Feng Lee dca292f538 Replace 'Client' with 'Credentials' map 2018-08-27 15:54:41 +08:00
Gilbert a183693ac8
Merge pull request #1747 from Gilbert-Wong/emqx30
fix subscribe bugs and update emqx_mock_client
2018-08-27 15:36:13 +08:00
Gilbert Wong 087bfe80c8 fix unsubscribe emqx_mock_client error 2018-08-27 15:24:40 +08:00
turtled 91eb79967c Add syslog 2018-08-27 13:50:38 +08:00
Gilbert Wong 28e22825ba fix emqx subscriptions error 2018-08-27 12:35:36 +08:00
Gilbert Wong f0f1456168 fix duplicated subscribers with same topic 2018-08-27 11:21:16 +08:00
Feng Lee 6d2b31911a
Merge pull request #1746 from emqtt/emqx30-feng
Use map to replace #state{} record
2018-08-27 10:35:43 +08:00
turtled 6478f811bf Fix conflicts 2018-08-27 10:29:22 +08:00
Feng Lee 6e8635394e Use map to replace #state{} record 2018-08-27 10:25:15 +08:00
turtled 95d36d0204 Fix share sub bug 2018-08-27 10:15:41 +08:00
turtled 1448515e64 Fix websocket bug 2018-08-27 10:14:58 +08:00
Feng Lee 5f65335835
Merge branch 'emqx30' into emqx_30_acl_cache_v2 2018-08-27 09:42:42 +08:00
Feng Lee 3f811aa9ca Add credentials/1 function 2018-08-27 09:28:49 +08:00
Gilbert Wong a369fb6960 fix subscribe bug 2018-08-26 22:02:39 +08:00
terry-xiaoyu 9d29dd0e10 use config enable_acl_cache 2018-08-26 18:25:17 +08:00
Feng Lee 397179bbda Merge branch 'emqx30' of github.com:emqtt/emqttd into emqx30 2018-08-26 16:25:02 +08:00
Feng Lee 0e3728c940 Add emqx_types module and 'credentials' type 2018-08-26 16:24:51 +08:00
terry-xiaoyu 9717f9b83e add module emqx_acl_cache 2018-08-26 15:46:22 +08:00
terry-xiaoyu 8cd20744be improve cache datastruct using keys-queue 2018-08-26 13:33:00 +08:00
terry-xiaoyu a904031979 acl cache using proc_dict 2018-08-26 13:30:18 +08:00
terry-xiaoyu 737fe19331 update acl test cases 2018-08-26 12:48:32 +08:00
Gilbert Wong ee11627828 delete duplicated subscribe function 2018-08-25 18:36:17 +08:00
Gilbert Wong 8b4be236e5 fix list_to_subid error 2018-08-25 17:10:51 +08:00
Feng Lee 36129073e8 Merge branch 'emqx30-dev' of github.com:emqtt/emqttd into emqx30-dev 2018-08-25 16:08:27 +08:00
Feng Lee b7c2821326 Make reason codes of SUBACK be compatible with MQTT V3.1.1 2018-08-25 16:07:57 +08:00
Feng Lee c2c1320083 Update compat/2 for suback reason codes 2018-08-25 16:05:58 +08:00
Feng Lee 612c88e71e Add 'rc' and 'subid' fields 2018-08-25 16:04:21 +08:00
Feng Lee 1aee05ce16 Fix unsubscribe bug 2018-08-25 16:03:28 +08:00
turtled 892483891a Merge branch 'emqx30-dev' of https://github.com/emqtt/emqttd into emqx30-dev 2018-08-25 14:32:48 +08:00
turtled fc0f57073d Fix share sub dispatch fail 2018-08-25 14:32:32 +08:00
Feng Lee 5f42f88401 Pass paho zero_length_clientid test case 2018-08-25 11:51:36 +08:00
Feng Lee 68cfcf6e0e Pass paho mqtt interoperability tests 2018-08-24 23:19:11 +08:00
Feng Lee 694485252a Merge branch 'emqx30-dev' of github.com:emqtt/emqttd into emqx30-dev 2018-08-24 18:43:36 +08:00
Feng Lee 0f052ce352 Upgrade connection, protocol and session modules for MQTT 5.0 2018-08-24 18:39:59 +08:00
turtled 36647b641f Fix select emqx_shared_subscription fail 2018-08-24 11:38:54 +08:00
Petr Gotthard d4176461ff Send client_pid to distinguish multiple clients
When a controlling process starts multiple clients that make multiple
subscriptions it may be desirable to identify from which client a
message is comming from. The topic id may not be sufficient.
2018-08-20 11:58:19 +02:00
turtled 22e8b07a3d Receive/send messages by bridge 2018-08-19 20:31:44 +08:00
Feng Lee c9d604ed02 Fix the badmatch error of packet_to_msg/1 2018-08-13 16:49:53 +08:00
Feng Lee 9145fb9ec8 Use os:timestamp/1 to get now millseconds 2018-08-12 19:14:14 +08:00
Feng Lee f80cd2d986 Improve the MQTT over Websocket connection 2018-08-11 17:57:19 +08:00
Gilbert Wong 3d05954d5b Optimize emqx_time module 2018-08-11 16:17:39 +08:00
turtled d516b8c241 mochiweb -> cowboy 2018-08-09 15:19:45 +08:00
Feng Lee 919eb9fa1e Use cowboy to replace minirest 2018-08-09 14:27:49 +08:00
Feng Lee e23a6e87d8 Merge listeners, zones, bridges config 2018-08-08 19:37:57 +08:00
Feng Lee 4005d58166 Move the 'rate_limit' option from zone to listener 2018-08-08 19:31:25 +08:00
turtled b5a1960b63 Stop emqx_ws 2018-08-08 18:42:11 +08:00
turtled 4d9e03a803 Refactor websocket conn using cowboy 2018-08-08 18:36:14 +08:00
Feng Lee 8418be0a5b Use the new emqx_session:unsubscribe/2 API 2018-08-07 11:00:04 +08:00
Gilbert Wong 96d251ec3c Add encode and decode options and test suites 2018-08-07 10:27:04 +08:00
Gilbert Wong 79481db659 Enhance base62 encode/decode Funs 2018-08-06 23:45:27 +08:00
Feng Lee 645c971a07 Fix QoS tuning 2018-08-06 17:09:14 +08:00
Feng Lee 7d0cba9427 Add MQTT 5.0 supports for connection, protocol and session modules 2018-08-06 16:33:10 +08:00
Feng Lee 83dee0e340 Rename emqx_alarm to emqx_alarm_mgr 2018-07-19 10:53:41 +08:00
Feng Lee eeeed35e2a Remove the alarm_fun arg from emqx_mqueue:new/3 2018-07-19 10:46:05 +08:00
Feng Lee 4297033415 Fix undefined emqx_vm:schedulers/1 2018-07-19 10:19:25 +08:00
Feng Lee 7ee54aac28 Add 'qos' field to message record 2018-07-18 23:41:00 +08:00
Feng Lee 6c58bbab2b Remove emqx_lager_backend module 2018-07-18 23:29:38 +08:00
Feng Lee ca4cdfe4ee Move the passwd_hash/2 function to emqx-passwd project 2018-07-18 23:29:20 +08:00
Feng Lee 62aa072f2f Upgrade for MQTT Version 5.0 and Erlang/OTP R21 2018-07-18 13:43:17 +08:00
chenyy 6f405dc128 remove ?MODULE because we don’t need it 2018-06-29 15:10:12 +08:00
Feng Lee 385c7cd3e6 Remove 'tuple call' and be compatible with Erlang/OTP R21 2018-06-29 12:26:30 +08:00
Feng Lee 1de94b6858 Register the default ACL module in emqx_access_control 2018-06-21 22:40:30 +08:00
Feng Lee b733a3bcfb Throw mqtt_frame_too_large exception if the sent frame is too large 2018-06-12 12:10:53 +08:00
Feng Lee 5d45d40db5 Rename emqx_mqtt module to emqx_listeners 2018-06-12 10:04:01 +08:00
Feng Lee 055de617fc Add emqx_message:make/4 and fix whitespace 2018-05-31 21:57:17 +08:00
Feng Lee bffdd2ba74 Upgrade esockd and add more test cases 2018-05-22 13:01:19 +08:00
Feng Lee bf253ab9b3 Support batch delete 2018-05-10 22:03:59 +08:00
Feng Lee c11e8f453b Add test cases for MQTT 5.0 frame 2018-05-09 00:42:41 +08:00
Feng Lee 31bc091873 Implement MQTT Version 5.0 client 2018-05-06 17:45:18 +08:00
Feng Lee 1fe28a7aef Update merge_opts/2 function 2018-04-30 12:36:17 +08:00
Feng Lee 1630f7c9b8 Add validate/1 function 2018-04-30 12:33:29 +08:00
Feng Lee dc7804a2dc Support MQTT Version 5.0 Client 2018-04-30 12:27:39 +08:00
Feng Lee 16426346bb Fix whitespace 2018-04-24 17:31:31 +08:00
Feng Lee 2a4ffc6645 Add more service modules for MQTT Version 5.0 2018-04-18 16:34:23 +08:00
Feng Lee bbb66ff92e Refactor the broker, router modules 2018-04-10 18:17:07 +08:00
Feng Lee bcdcb30af5 Merge branch 'emqx30' of github.com:emqtt/emqttd into emqx30 2018-04-09 14:32:58 +08:00
Feng Lee a902f508b5 Use emqx_config:get_env/1 to read env 2018-04-09 14:32:49 +08:00
Feng Lee c194e82807 Export dispatch/2, dispatch/3 for RPC 2018-04-09 14:31:34 +08:00
Feng Lee 71acf91ace Replace lager with emqx_log 2018-04-09 12:34:53 +08:00
Feng Lee 5f32f3c560 Pass the paho interoperability tests 2018-04-08 16:37:30 +08:00
Feng Lee bfb23ff0b2 Improve the design of MQTT session management 2018-04-08 15:16:05 +08:00
Feng Lee 39548cc399 Improve the session management 2018-04-04 15:28:01 +08:00
Feng Lee 6459481024 Add multicall/4 function 2018-04-03 20:22:01 +08:00
Feng Lee 2eed46310c Misc fix for the MQTT Version 5.0 2018-03-30 17:18:08 +08:00
Feng Lee 9976327c8d Add emqx_mqtt module 2018-03-23 18:13:09 +08:00
Feng Lee f007f69abe Update emqx.app.src 2018-03-23 16:45:50 +08:00
Feng Lee 56b88dd7f7 Improve the design of session management 2018-03-23 16:39:23 +08:00
Feng Lee 282e341433 EMQ X R3.0 - Improve the design of pubsub and router 2018-03-21 16:48:52 +08:00
Feng Lee f218c6a35d Add a locker module 2018-03-10 13:28:14 +08:00
Feng Lee 22350f9117 Depends on canel-lock library 2018-03-09 13:26:46 +08:00
Feng Lee 6a957e1b33 Support MQTT Version 5.0 2018-03-02 20:18:27 +08:00
Feng Lee d7eae533ac Merge the emqx-mqtt5 library 2018-02-28 21:22:39 +08:00
Feng Lee f7f0f27e4d Parse and serialize MQTT 5.0 protocol packets 2018-02-27 23:45:55 +08:00
Feng Lee a8aeb5ac17 Rename the 'mqtt_route' record to 'route' 2018-02-27 09:13:14 +08:00
Feng Lee f4fd6efe16 Merge the emqx-common, emqx-router libraries 2018-02-26 23:29:53 +08:00
Feng Lee d5893ba2be Replace gen_server2 with gen_server for we cannot trace the size of drain queue 2018-02-26 13:24:29 +08:00
Feng Lee fcb2ec8427 Merge the latest enterprise branch 2018-02-24 15:56:32 +08:00
Feng Lee b63c34ab14 Merge the latest master branch 2018-02-24 11:27:09 +08:00
Feng Lee a22e225e67
Merge pull request #1475 from HJianBo/develop
Fix #1473 for supporting special chars in URL path
2018-01-28 15:32:56 +08:00
Feng Lee 707d338b0e
Merge branch 'develop' into ws-proxy 2018-01-28 15:11:08 +08:00
HeeeJianBo 3146cdda92 Fix #1473 for supporting special chars in URL path 2018-01-28 14:25:41 +08:00
Feng Lee 0f717e5b3b Merge branch 'develop' of github.com:emqtt/emqttd into develop 2018-01-23 11:10:27 +08:00
Feng Lee 701c632e07 Fix issue #1461 - keep the retain flag for new subscription 2018-01-23 11:09:42 +08:00
Feng Lee a3e97f798b Update Copyright to 2018 2018-01-16 08:57:46 +08:00
Feng Lee 56195670c6 Misc fix 2018-01-12 10:45:36 +08:00
Feng Lee bfa9fc675c
Merge pull request #1420 from HJianBo/issue_1216
Fix issue #1216
2018-01-07 14:02:54 +08:00
Feng Lee fdc55de509 Change the type of 'mqtt.bridge.ping_down_interval' to ms duration 2018-01-04 16:09:45 +08:00
Feng Lee 86fc80b983 Change the type of 'mqtt.broker.sys_interval' to ms duration 2018-01-04 16:09:10 +08:00
turtled 0a7e93ea90 Export funtion fix #1428 2018-01-03 10:29:51 +08:00
turtled ad26eff421 Format print log 2018-01-03 10:27:51 +08:00
HeeeJianBo 5fbbff46b1 Fix issue #1216, redeliver pubrel packet now 2017-12-28 17:57:32 +08:00
Feng Lee 953a7628a3 Version 2.3.3 2017-12-28 11:34:29 +08:00
HeeeJianBo 4c8b43e05d Improve impletament of emqttd_topic:match/2 2017-12-27 15:11:55 +08:00
HeeeJianBo d5c54276e2 Fix issue #1398 2017-12-27 14:55:36 +08:00
Feng Lee bcec25092b Merge version 2.3.2 to X edition 2017-12-26 21:09:24 +08:00
Feng Lee db954aeb6d Support X.509 certificate based authentication with HAProxy 2017-12-15 19:23:50 +08:00
Feng Lee 6f64eb469c Remove emqttd_ssl.erl 2017-12-07 17:58:24 +08:00
Feng Lee b98007659e Merge the master branch 2017-12-07 17:57:18 +08:00
Feng Lee 73836939c8 Support for TLS with client certificate based authentication 2017-12-07 17:42:32 +08:00
Feng Lee 6e5134a8b2 Merge with the enterprise edition 2017-12-07 16:24:48 +08:00
Feng Lee f1640f5b85 Merge emq24 to X branch 2017-12-07 11:02:44 +08:00
Feng Lee 9f1c3a5899 Compatible with esockd 4.x 2017-12-06 14:42:26 +08:00
turtled bcf345efbe Fix compile fail 2017-12-06 10:27:55 +08:00
turtled ddf2965651 Rm emqttd.app.src 2017-12-06 10:26:19 +08:00
turtled 24f05adb1a Fix compile fail 2017-12-06 10:19:46 +08:00
Feng Lee c3c5589452 Version 2.3.2 2017-12-06 10:01:42 +08:00
Feng Lee 51533dbe9e Shutdown the connection if an error occurred when sending data 2017-12-05 23:41:40 +08:00
turtled a42fcb2c39 Fix conflicts 2017-12-05 16:34:18 +08:00
HuangDan b8e0a4d5c4 Bump version to 2.3.1 2017-12-03 00:43:42 +08:00
Feng Lee 0fe530a502 Depends on the develop branch of mochiweb 2017-12-02 18:00:56 +08:00
Feng Lee 4915195b1e Fix issue #1335 - Forward real client IP using a reverse proxy for websocket 2017-12-02 17:59:16 +08:00
HeeeJianBo 70570dd943 Merge branch 'develop' into ws_proxy 2017-12-01 22:22:20 +08:00
HeeeJianBo 5006dbba6e Add ws/wss proxy cofingurations for getting client original ip address 2017-12-01 22:12:27 +08:00
Feng Lee c308037b1a Remove the unnecessary transactions to optimize session management 2017-12-01 17:16:59 +08:00
Feng Lee d2a4e2c615 Should not exit arbitrarily if clientid conflicts in mnesia 2017-12-01 15:46:42 +08:00
Feng Lee d9500412bf Update the topic's statistics 2017-12-01 09:10:46 +08:00
Feng Lee ee5c33d0bd Fix the 'no function clause' exception for issue #1293 2017-11-29 22:23:59 +08:00
Feng Lee 26fb809dbe Fix issue#1293 - the retained flags should be propagated for bridge. 2017-11-29 14:09:46 +08:00
Feng Lee 223f3d4da5 Remove RPC configurations 2017-11-22 16:44:00 +08:00
Feng Lee 38c33e9c8b Merge with emqx 2017-11-21 22:41:05 +08:00
Feng Lee 845c5eddc1 Merge with emqx 2017-11-21 22:41:02 +08:00
Feng Lee e52c303014 Merge develop to X 2017-11-21 14:25:35 +08:00
Feng Lee 2cec86eba7 Merge with version 2.3.0 2017-11-21 14:14:12 +08:00
Feng Lee db3a54e31a Fast close the invalid websocket in init/1 function 2017-11-20 14:15:51 +08:00
Feng Lee 14771cdaee Fix issue #1340 - erlang:demonitor/1 the reference when erasing the monitor 2017-11-20 10:10:32 +08:00
Feng Lee 6028d6e83e Show local route 2017-11-19 14:25:54 +08:00
Feng Lee 945f925136 Refactor the subscription_list function 2017-11-19 01:15:22 +08:00
turtled 8462fa8e89 Display local route 2017-11-18 17:21:13 +08:00
Feng Lee f01deec950 Update the 'api/v2/subscriptions' API 2017-11-18 13:23:51 +08:00
Feng Lee 1d0e17b89c Improve the print of 'subscriptions' CLI 2017-11-18 12:25:00 +08:00
Feng Lee d58b8bed3c Fix the 'subscriptions add <ClientId> <Topic> <Qos>' CLI 2017-11-18 11:48:44 +08:00
Feng Lee 405d5d9d29 Fix the 'subscriptions' CLI 2017-11-18 11:17:19 +08:00
Feng Lee 11a41166d2 Fix the function spec: '{error, any()}' -> '{error, term()}' 2017-11-17 21:13:20 +08:00
Feng Lee 62d4f9f031 Bump version to 2.3.0 2017-11-17 20:53:07 +08:00
Feng Lee 8f00e28576 Improve the pubsub design and fix the race-condition issue 2017-11-17 20:51:51 +08:00
HeeeJianBo cae743803b Improve the process logic of DUP flag (#1319). 2017-11-03 17:49:52 +08:00
HeeeJianBo 279b96f146 Fix issue #1319, reset DUP=0 when recv DUP=1 PUBLISH Message 2017-11-02 09:48:37 +08:00
Feng Lee 49d91cf694 Rename 'message.offline' hook to 'message.dropped' 2017-10-31 15:19:53 +08:00
HeeeJianBo 84d8eae37e Fixed issue #1314. re-sent retained messages when create/replace Subscription
- re-sent message when create a new Subscription relationship
- re-sent message when replace an existed Subscription with different Qos
2017-10-31 13:23:54 +08:00
turtled 586c3a243a Fix retained message is not sent for Subscribe to existing topic 2017-10-28 22:07:06 +08:00
HuangDan c87c49ede0 Updated trace logging level 2017-10-21 14:49:56 +08:00
HuangDan c43cae4348 Bug fixed for users api 2017-10-11 20:08:01 +08:00
Feng Lee 2354a3dd5d Fix the building errors 2017-10-10 15:50:40 +08:00
turtled 5d30ceccd1 Fix passwd_hash return type error 2017-10-10 14:15:53 +08:00
Feng Lee 735211fd02 Merge with EMQ X project 2017-10-09 23:29:05 +08:00
Feng Lee 4b8cd18f5d Merge with EMQ X project 2017-10-09 19:43:06 +08:00
turtled 54534967bd Fix Dashboard not showing data 2017-10-09 18:08:46 +08:00
turtled 88c77cf4c2 Auth failure not publish the will message 2017-10-09 18:07:09 +08:00
turtled d9f14dacaf Fix dashboard not showing data bug 2017-09-25 14:59:58 +08:00
turtled e57121a660 Fix string:split undefined issue 2017-09-12 21:34:43 +08:00
turtled f6025404e3 Update clean_acl_cache API 2017-09-12 10:57:04 +08:00
turtled ee9fc5cb0e Review code 2017-09-09 21:21:30 +08:00
turtled 424aea2878 Review code 2017-09-09 21:00:17 +08:00
turtled 8091c07d3c Review code 2017-09-09 20:55:57 +08:00
turtled 85f9a8cb70 Fix read plugin configuration not find schema file 2017-09-08 23:23:48 +08:00
turtled 7260b17cb5 Plugins configuration insert to ets table 2017-09-06 17:17:29 +08:00
turtled d3f52898ee Add Hot configuration plugin 2017-09-05 16:52:07 +08:00
turtled ed29c3273d Review code 2017-08-21 16:16:28 +08:00