Commit Graph

198 Commits

Author SHA1 Message Date
Feng Lee a6262ffb30 Remove the 'rc' field from DEFAULT_SUBOPTS 2019-07-22 17:07:58 +08:00
Feng Lee dfa2c2370e Define 'Otherwise' macro 2019-07-13 12:25:25 +08:00
Gilbert 70be888f3b Compat windows (#2665) 2019-07-05 23:10:13 +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 f32a415a83 Merge branch 'channel3' 2019-06-25 15:55:31 +08:00
Feng Lee 795fe4e0bc Add 'PUBLISH_PACKET(QoS, Topic, PacketId)' macro 2019-06-25 14:29:26 +08:00
turtled 481458d8ec Add plugin type 2019-06-21 19:52:53 +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 c64751a53c Support module level logger header 2019-06-18 14:37:32 +08:00
Feng Lee 21162f88b8 Update copyright 2019-06-18 14:27:06 +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
Gilbert Wong bcbb4b68e9 Add flapping detect feature 2019-04-19 16:34:33 +08:00
spring2maz 48450d1d37 Move request response out of emqx client (#2293)
* Delete response_topic_prefix

The Response-Infomation in CONNACK was misinterpreated, it should
not be a broker's global config, instead, it should be per-client
or even per-session prefix/suffix mechanism

* Delete request-response code from emqx_client

* Add request-response test code

* meck as default dependency --- temp workaround for dep-vsn-check
2019-03-13 11:27:25 +08:00
Gilbert b1ca0120a2 Move bridge modules out of bridge directory (#2273) 2019-02-28 17:04:39 +08:00
Gilbert 771f8c052a
Merge branch 'develop' into introduce-new-bridge-impl 2019-02-28 15:14:40 +08:00
Feng Lee 08204fc7a8 Improve the emqx_connection module using gen_statem behaviour (#2235) 2019-02-28 15:08:29 +08:00
Gilbert Wong 911a813891 Fix copyright and unify log method 2019-02-28 11:18:12 +08:00
spring2maz efc9e34033 Make use of BUMP_PACKET_ID the only way to generate packet IDs 2019-02-28 11:17:27 +08:00
spring2maz 67376727c9 Add batch send support for emqx_client:publish/2
also cover emqx_portal_mqtt with CT
2019-02-28 11:17:27 +08:00
spring2maz fbe67e6784 Introduce new bridge impl 2019-02-28 11:17:27 +08:00
Gilbert c3e6f3c3b2 Improve try catch syntax (#2263)
* Replace case catch.. with try ... catch
Prior to this change, case catch ... would cost a lot of performance
because it would retrieve the whole stacktrace. However, try...catch
will not retrieve the whole stacktrace. So try...catch syntax is better.
2019-02-28 09:54:28 +08:00
Feng Lee 269b74232a Introduce some common types 2019-02-19 17:16:11 +08:00
张奇怪 44d3eff094 Auto-pull-request-by-2019-02-19 (#2232)
* Update Copyright to 2019 (#2191)

* Disable bridges by default (#2189)

* Fix warning logger args emqx#2195

* Ambiguity elimination (#2217)

* Fix emqx_ws_connection: prevent crashes on pong (#2210)

* Issue#2184 (#2194)

* Delete dep-vsn-check

* Format app.src
2019-02-19 14:00:34 +08:00
turtled 31e95b56c4 Update Copyright to 2019 2019-01-29 10:43:25 +08:00
Feng Lee d7254cdc7f Add more macros for logger 2019-01-04 17:30:27 +08:00
terry-xiaoyu 3b8eb41347 Remove the log header macro 2019-01-04 17:30:27 +08:00
Shawn eeb0cab3e3 Update proc meta-data for empty clientid (#1980) 2018-11-23 18:11:46 +08:00
terry-xiaoyu bc1464a33f Lazy logging without header 2018-11-19 11:17:58 +08:00
terry-xiaoyu 82b8047349 Helper funcs for adding proc meta-data 2018-11-19 11:17:58 +08:00
terry-xiaoyu e8cc65ef40 Change logger micros 2018-11-19 11:17:58 +08:00
terry-xiaoyu 41315bff0d Log macros for lazy evaluation 2018-11-19 11:17:58 +08:00
Gilbert Wong 32d3826440 Replace macro QOS$i to QOS_$I
The two styles of qos macro name in one project is chaotic. It is not
a good practice.

So I change the QOS$i to QOS_$i
2018-11-08 20:42:31 +08:00
spring2maz ae743ad1f0 Rewrite emqx_mqueue.erl
Fixed bugs:

- Priority queue lack of a `len + 1` logic in `in/2`

Changed behaviors:

- Topics not found in priority table (from config) will be treated with default priority,
  instead of hasing topic name to a priority number.
- Default priority is now configurable (it was always lower than all configured priorities)
- The dropped message due to reaching `max_len` is now returned from `in/2`,
  so the queue owner (`in/2` caller) can perform autopsy on it
2018-10-27 14:21:53 +02:00
Gilbert 4c40f75f4b Request & Response (broker and client) (#1819)
Add request & response support for CONNECT & CONNACK

Prior to this change, there is no validate and specified process for
Request-Response-Information and Response-Information

Also added basic Request/Response functionality to emqx_client implementation
2018-10-18 19:21:05 +02: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
周子博 83e11b6e39 Add emqx_banned test suite, and fix bugs in emqx_banned 2018-08-30 22:45:08 +08:00
Feng Lee 567aeb274f Define types in emqx_types, emqx_mqtt_types modules 2018-08-29 23:08:55 +08:00
turtled 6478f811bf Fix conflicts 2018-08-27 10:29:22 +08:00
turtled 95d36d0204 Fix share sub bug 2018-08-27 10:15:41 +08:00
Feng Lee 0e3728c940 Add emqx_types module and 'credentials' type 2018-08-26 16:24:51 +08:00
Feng Lee b10f49b52c Add CONNACK macros for MQTT V3.1.1 2018-08-25 11:49:19 +08:00
Feng Lee 0f052ce352 Upgrade connection, protocol and session modules for MQTT 5.0 2018-08-24 18:39:59 +08:00
Feng Lee 6ab489a9b5 Change the MAX_CLIENTID_LEN to 65535 2018-08-10 15:38:08 +08:00
turtled 4d9e03a803 Refactor websocket conn using cowboy 2018-08-08 18:36: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 b110a154ef Upgrade header files for EMQ X 3.0 2018-07-18 14:27:11 +08:00
Feng Lee bffdd2ba74 Upgrade esockd and add more test cases 2018-05-22 13:01:19 +08:00
Feng Lee 31bc091873 Implement MQTT Version 5.0 client 2018-05-06 17:45:18 +08:00
Feng Lee dc7804a2dc Support MQTT Version 5.0 Client 2018-04-30 12:27:39 +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 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 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 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 6a957e1b33 Support MQTT Version 5.0 2018-03-02 20:18:27 +08:00
Feng Lee aef5a20697 Add 'message' and 'delivery' record 2018-03-01 21:04:00 +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 f4fd6efe16 Merge the emqx-common, emqx-router libraries 2018-02-26 23:29:53 +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 a3e97f798b Update Copyright to 2018 2018-01-16 08:57:46 +08:00
Feng Lee a904dfd4f2 Comment the ERTS_MINIMUM macro 2017-12-07 16:26:32 +08:00
turtled a42fcb2c39 Fix conflicts 2017-12-05 16:34:18 +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 2cec86eba7 Merge with version 2.3.0 2017-11-21 14:14:12 +08:00
Feng Lee d41fd94abb Format the 'trie_node' record 2017-11-17 20:55:57 +08:00
Feng Lee 4b8cd18f5d Merge with EMQ X project 2017-10-09 19:43:06 +08:00
turtled d3f52898ee Add Hot configuration plugin 2017-09-05 16:52:07 +08:00
turtled 9e6c63b91b REST API add modify_config/config_list 2017-08-17 15:51:20 +08:00
turtled 7c1ee6610d Add http management APIs 2017-08-09 10:14:29 +08:00
Feng Lee 66c3c26d8b Support 'mountpoint' 2017-03-23 15:04:37 +08:00
Feng Lee 0df59934c7 Fix the GPROC_POOL macro 2017-03-13 12:14:57 +08:00
Feng Lee bb91bc04c6 Merge pull request #941 from callbay/issue#935
Fix Issue#935
2017-03-13 11:41:22 +08:00
Frank Feng 7cb3b7ca8a Id -> I 2017-03-12 23:07:45 +08:00
Feng Lee 35e08df735 Change the default QoS of will message to QOS_1 2017-03-06 18:17:07 +08:00
Feng Lee c3919a64e6 Format 'trie_node' record 2017-03-06 18:13:07 +08:00
Feng Lee 98e15ebbf4 Prepare for MQTT/5.0 2017-03-06 18:11:09 +08:00
Feng 9309baf17c Rename mqtt_msgid() type to mqtt_msg_id() 2017-02-23 22:59:26 +08:00
Feng Lee 73847b96fc Add 'FULLSWEEP_OPTS' macro 2017-02-23 17:16:55 +08:00
Feng Lee 088adeda3b Fix issue #916 - add 'mqtt_msg_from()' type 2017-02-22 14:11:10 +08:00
Feng 6c50a59cad Rename macro 'MAX_PACKET_LEN' to 'MAX_PACKET_SIZE' 2017-02-22 00:32:22 +08:00
Feng Lee de12c58af0 Rename 'MAX_LEN' to 'MAX_PACKET_LEN' 2017-02-21 20:09:31 +08:00
Feng Lee 4df2a71c27 Update copyright, format record, add 'AUTH' packet type for MQTT 5.0 2017-02-16 10:53:51 +08:00
huangdan 8092543efb Copyright (c) 2012-2017 2017-01-11 19:34:48 +08:00
Feng 7819d235b7 add mqtt_subscription record 2016-10-31 18:59:41 +08:00
Feng Lee a1ed02499c mqtt_topic 2016-08-21 16:21:45 +08:00
huangdan 7206e18621 mqtt_topic 2016-08-21 13:52:53 +08:00
Feng Lee 354ab5ad21 msgid -> id 2016-08-18 10:57:00 +08:00
Feng Lee c72a07dbb8 mqtt_delivery, mqtt_message 2016-08-16 13:41:53 +08:00
Feng Lee 123f9b444c mqtt_message, mqtt_delivery 2016-08-15 17:30:27 +08:00
Feng Lee 38daaa2f5c server -> pubsub -> router 2016-08-10 21:29:55 +08:00
Feng Lee 6686139bc6 mqtt_trie, mqtt_trie_node 2016-08-10 15:04:26 +08:00
Feng 226933018a improve the design of pubsub and router 2016-08-08 13:49:52 +08:00