Commit Graph

3436 Commits

Author SHA1 Message Date
spring2maz
1e27098e8c Drain msg queue for deterministic test 2019-03-05 04:28:01 +01:00
spring2maz
252b376e48 Use keep_state_and_data in emqx_client to avoid unnecessary var binding 2019-03-05 04:04:20 +01:00
spring2maz
656429fcc1 Move emqx_client should_ping function to internal block 2019-03-05 03:57:20 +01:00
spring2maz
a056a4cbde Eliminate {error, inflight_full} from publish call to emqx_client
Prior to this change, if a emqx_client:publish/? caller sends in
QoS=1/2 messages too fast, emqx_client may return
`{error, inflight_full}` which could put put the caller to an
awkward situation: there seem to be no ohter option except for
putting self to a sleep-n-retry infinite loop.

In this change, a new gen_statm state 'inflight_full' is introduced
as a sub-state of 'connected'. When emqx_client is in 'inflight_full'
state, it postpone all publish calls (for QoS=1/2) until inflight
window size shrinks.
2019-03-05 03:47:33 +01:00
turtled
22aa7d4668 Rm acl_deny_action_ct test case 2019-02-28 22:19:19 +08:00
tigercl
da755b88c7 Add monitors and alarm handler (#2266)
* Add monitors and alarm handler
2019-02-28 18:25:17 +08:00
Gilbert
c26d13b057 Fix test case (#2275)
* Fix t_rpc test
2019-02-28 18:07:16 +08:00
turtled
f1d751dd95 Fix compile fail 2019-02-28 17:06:40 +08:00
Gilbert
b1ca0120a2 Move bridge modules out of bridge directory (#2273) 2019-02-28 17:04:39 +08:00
turtled
c8e2840126 Merge fix conflicts 2019-02-28 17:02:39 +08:00
turtled
42932d7b5d Format code 2019-02-28 16:57:40 +08:00
turtled
df97eb0007 Review code 2019-02-28 16:56:44 +08:00
turtled
8792f7e02b Review code 2019-02-28 16:56:04 +08:00
linjun
814fd3fc9e Fix test case 2019-02-28 16:36:47 +08:00
Gilbert
ebc442bb39
Introduce new bridge impl 2019-02-28 15:48:35 +08:00
Gilbert Wong
055d0ad98e Fix typo 2019-02-28 15:39:11 +08:00
Gilbert Wong
7efd7b3ec0 Rename portal to bridge 2019-02-28 15:31:54 +08:00
Gilbert
771f8c052a
Merge branch 'develop' into introduce-new-bridge-impl 2019-02-28 15:14:40 +08:00
Feng Lee
3e0fa87209 Remove the io:format 2019-02-28 15:09:13 +08:00
Feng Lee
e3bc8e4f0a Support batch delivery
- Upgrade the emqx_session module to support batch delivery
- Update emqx_protocol:deliver/2 to support batch delivery
- Update some test cases
2019-02-28 15:09:13 +08:00
Feng Lee
08204fc7a8 Improve the emqx_connection module using gen_statem behaviour (#2235) 2019-02-28 15:08:29 +08:00
linjun
37c7e684b0 Adjusting code 2019-02-28 14:32:13 +08:00
linjun
16165ce935 Use conn_mod instead of socktype 2019-02-28 11:32:05 +08:00
Gilbert Wong
d18f4ba550 Fix wrong config entries 2019-02-28 11:18:12 +08:00
Gilbert Wong
911a813891 Fix copyright and unify log method 2019-02-28 11:18:12 +08:00
spring2maz
9dbc34c376 Ack replayq and allow retry in tests 2019-02-28 11:17:27 +08:00
Gilbert Wong
75163e21f3 Reverse intensity/period in bridge SupFlag 2019-02-28 11:17:27 +08:00
Gilbert Wong
afa0d98b8d Disable bridge defaultly 2019-02-28 11:17:27 +08:00
Gilbert Wong
ae92acf30f Refactor portal supervisor 2019-02-28 11:17:27 +08:00
Gilbert Wong
ec37225333 Add emqx_portal interfaces 2019-02-28 11:17:27 +08:00
Gilbert Wong
921a45a505 Fix emqx_portal_mqtt_tests start function 2019-02-28 11:17:27 +08:00
spring2maz
d4495fd8e7 Add manual start API 2019-02-28 11:17:27 +08:00
Gilbert
796fc3b1ba Fix app config generation (#2245) 2019-02-28 11:17:27 +08:00
spring2maz
1626cade28 Deleted batch publish support in emqx_portal_client
eqmx_portal_mqtt has to do single message publish calls for now
Also fix a bug in emqx_portal_mqtt ack collector
2019-02-28 11:17:27 +08:00
spring2maz
086a1d56b9 Drop unused config schema
bridge.$name.transport was added before we decided to derive
transport portocol based on the 'address' config.
i.e. when it's a remote erlang node, use gen_rpc
otherwise (must be IP or hostnmae), we should estabilish mqtt connection
2019-02-28 11:17:27 +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
6e1d4ec261 Add emqx_portal SUITE to default CT list 2019-02-28 11:17:27 +08:00
Gilbert Wong
d7e18c95c6 Fix spelling error 2019-02-28 11:17:27 +08:00
spring2maz
786a6eb696 Add APIs for subscription add / delete 2019-02-28 11:17:27 +08:00
spring2maz
599f5c8d4f Add API emqx_portal:ensure_forward_absent 2019-02-28 11:17:27 +08:00
spring2maz
2903a810ce Add emqx_portal:ensure_foreard_present API 2019-02-28 11:17:27 +08:00
spring2maz
9e78c18681 Add get_forwards and get_subscriptions protal APIs 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
b9e8bde3b0 Add first CT test for emqx_portal based on rpc 2019-02-28 11:17:27 +08:00
spring2maz
6d51d78dfc Add portal transport over emqx_client. 2019-02-28 11:17:27 +08:00
spring2maz
141af0d02c Add message handler callbacks option to emqx_client
In this commit, msg_handler option is added to emqx_client.
so the caller can provide callbacks to handle puback, publish,
as well as disconnected events instead of always delivered
as message like Owner ! {publish, Msg} to the owner process.

This is to make it ready to implement emqx_portal_connect on
top of emqx_client.
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
tigercl
a0fd9e63e0 Add data_dir to emqx.conf (#2271)
* Add data_dir to emqx.conf
2019-02-28 09:28:37 +08:00
linjun
1fe7431370 Adjusting test case 2019-02-27 16:33:49 +08:00