Commit Graph

4466 Commits

Author SHA1 Message Date
周子博 cb835af42b Fix bad comment 2018-11-19 10:49:05 +08:00
Andrei Nesterov 9d67a64165 Fix type validation for User-Property 2018-11-19 09:53:43 +08:00
terry-xiaoyu 078584172e Print EMQ X Version in the console 2018-11-10 12:14:26 +08:00
turtled faeda253e1 Fix conflicts 2018-11-10 11:44:55 +08:00
terry-xiaoyu 6e26f5e9af Revert logger print to io:format 2 2018-11-10 11:25:52 +08:00
terry-xiaoyu 2611b6fc2a Revert logger print to io:format 2018-11-10 11:01:11 +08:00
周子博 c76e2d1413 Fix 'badarg' in io_lib:format/2 when 'from' field is tuple 2018-11-09 18:32:26 +08:00
terry-xiaoyu 997958aed1 Change the start_link API for emqx_client
Prior to this change, emqx_client:start_link does 2 works in one call:
- init an erlang process for emqx_client
- send MQTT CONNECT to remote broker

But this solution have some drawbacks:

- the return value of `start_link` compiles the return values of the 2
 works: {ok, Pid, MqttResult}. It is inconsistent with the return value
 of `gen_statem:start_link`, may causes confusions.

- the return mode of the 2 works are different:
  `start_link` should always return {ok, Pid} or {error, Reason}, but
 connecting to mqtt may throw out exceptions as it handles the
 socket. But the caller couldn't have thought of the exception, he would
 pattern match on the result of `emqx_client:start_link`, but it crashed!

- If the init work succeed but the connection failed, the caller couldn't
get a Pid from the return value, but indeed it was created inside the
emqx_client. This hides the fact that the Pid was created, and when the
Pid dies, the caller would receive an message from a Pid it doesn' know about.

This change divived these 2 work into 2 APIs:
- `start_link/1` is to build and verify the options, and returns {ok,Pid}
 (on success) or {error, Reason} (on failure).
- `connect/1` is to send MQTT CONNECT, and returns {ok, MQTTResult::properties()} or
 {error, MQTTReason}. MQTT reason codes will contains in the `MQTTReason`.
2018-11-09 17:43:04 +08:00
terry-xiaoyu 2dc8ec8b11 Bridge via TLS 2018-11-09 17:43:04 +08:00
tigercl 3879dcdf59 Fix 'badarg' bug with duplicate subscriptions (#1943) 2018-11-08 23:02:35 +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
terry-xiaoyu f448c62e47 Fix config descriptions of ACL cache 2018-11-08 20:41:57 +08:00
turtleDeng 0a337cbcb4
Merge pull request #1905 from emqx/Fix-for-mqtt-sn
Fix the init_proc_mng_policy bug
2018-11-05 22:30:51 +08:00
terry-xiaoyu cca27d1a5a Change filesync_repeat_interval to no_repeat 2018-11-05 16:04:58 +08:00
Gilbert Wong 4ea57c2bf9 Delete redundant case clauses in sendfun
Prior to this change, there are ok, {binary, _Data}. {datagram, _Peer,
_Dara} case clauses, and the {binary, _Data} and {datagram, _Peer,
_Data} are unnecessary cases

This change delete these two cases and add ok in the end of funtion in
send_fun of emqx_ws_connection.
2018-11-03 22:56:11 +08:00
spring2maz 7ad3a63173
Merge pull request #1926 from emqx/rewrite-mqueue
Rewrite emqx_mqueue.erl
2018-11-03 10:04:30 +01:00
terry-xiaoyu f6266eaa93 Bumped the version number of deps 2018-11-02 19:42:51 +08:00
terry-xiaoyu 2a5f3e949c revert Makefile 2018-11-02 18:38:07 +08:00
terry-xiaoyu 92cc171aaf Support tracing log files for specific topics or clients 2018-11-02 18:38:07 +08:00
terry-xiaoyu 94dbdffd59 New logger formatter with meta-data 2018-11-02 18:38:07 +08:00
terry-xiaoyu 2c63aef3f6 Update schema 2018-11-02 18:32:42 +08:00
terry-xiaoyu 1222dd0eab Update log config template 2018-11-02 18:32:42 +08:00
terry-xiaoyu 46c7e86331 Fix some grammar 2018-11-02 18:32:42 +08:00
terry-xiaoyu 8f5b7a0d05 Optimize config for log section 2018-11-02 18:32:42 +08:00
spring2maz 28c8f2dd5c Remove neotoma plugin, build cuttlefish script in sub-dir 2018-10-27 14:21:53 +02: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
turtleDeng 41b79e4f99
Merge pull request #1889 from emqx/improve_connect
Improve will message
2018-10-27 14:37:05 +08:00
tigercl 64cb920b3b
Merge branch 'emqx30' into improve_connect 2018-10-27 14:27:25 +08:00
周子博 3cea06f88f Remove resume_session/1, 2018-10-27 14:25:10 +08:00
周子博 7c14ba11d6 Set some attributes when session resumed 2018-10-27 13:59:17 +08:00
turtleDeng 8788cb2158
Merge pull request #1921 from emqx/improve_test_cases
Improve test cases
2018-10-26 19:45:18 +08:00
周子博 881e1a9621 Add case for ets:match_object 2018-10-26 19:43:05 +08:00
turtleDeng 71b198f543
Merge pull request #1913 from emqx/cert_as_username
Support use certificate as username
2018-10-26 19:37:20 +08:00
周子博 92251d4a8a Make more normalize 2018-10-26 17:45:13 +08:00
Gilbert Wong f7285d5a58 Delete ackprops in pstate
Prior to this change, ackprops is duplicated with ack_props

This change delete ackprops.
2018-10-26 17:30:39 +08:00
tigercl abb2e5c918
Improve test cases, and fix some bugs (#1920)
* Improve emqx_banned, emqx_pqueue, emqx_router test cases

* Improve emqx_broker test case, and fix bug in emqx_broker

* Add emqx_hooks to CT_SUITES
2018-10-26 17:27:02 +08:00
Gilbert 0b44c1b75f
improve_test_cases 2018-10-26 17:25:31 +08:00
周子博 e56252dac6 Fix bugs in test cases 2018-10-26 14:34:22 +08:00
Gilbert 7544a21e25
Add test cases for emqx_bridge, emqx_mod_rewrite (#1914) 2018-10-26 14:04:33 +08:00
周子博 ffa220a87d Fix bug in test case 2018-10-26 10:46:56 +08:00
周子博 db2e47470a Fix bugs 2018-10-25 16:19:57 +08:00
周子博 6675e3d496 Implement will message delay publish in session, add test case for clean start and will message in connect packet 2018-10-25 14:26:31 +08:00
Gilbert Wong a1092a6784 Add eunit cases and fix typo. 2018-10-24 15:59:22 +08:00
周子博 540484e603 Send and cancel will message by apis rather than hook 2018-10-23 17:27:46 +08:00
Gilbert Wong 3f761cbe6a Support use certifate as username
Prior to this change, you can just use CN or EN field from the client
certificate as username.

This change add a new option to allow user to use Certificate directly as
username.
2018-10-23 14:37:05 +08:00
Gilbert 58f5f3c51b
Merge branch 'emqx30' into Fix-for-mqtt-sn 2018-10-23 13:29:45 +08:00
Gilbert Wong 35460d8227 Refactor send_fun 2018-10-22 09:04:03 +08:00
tigercl 873a08dc94
Improve coverage for emqx_hooks, and add test case for emqx_mod_sup (#1892)
Improve coverage for emqx_hooks, and add test case for emqx_mod_sup
2018-10-19 16:21:43 +08:00
Gilbert Wong d10edfe025 Resolve merge conflict 2018-10-19 16:05:59 +08:00
tigercl 55a12c1ab4
Merge branch 'emqx30' into improve_connect 2018-10-19 16:03:17 +08:00