Gilbert Wong
b3927ff730
Add emqx_ct_helpers as deps and refactor test suites
2019-04-25 13:41:22 +08:00
Gilbert Wong
bcbb4b68e9
Add flapping detect feature
2019-04-19 16:34:33 +08:00
Gilbert Wong
f1616c33d9
Convert value of attribute table to map
2019-04-13 10:35:59 +08:00
Gilbert Wong
81ef5b9b8d
Support cookie based auth
2019-04-12 19:25:22 +08:00
Shawn
a53320069b
Fix trace logger level not work ( #2408 )
...
* Fix trace logger level not work #2385
2019-04-10 09:14:53 +08:00
JianBo He
aad2d7378e
Put peername into messsage headers ( #2390 )
...
* Put peername into the message.heaers
2019-04-04 13:41:03 +08:00
Shawn
2306789755
Remove bin_key_map/1 ( #2393 )
...
* Remove bin_key_map/1
* Fix Travis-CI failure
2019-04-03 19:41:21 +08:00
Feng Lee
60c2b8bc08
Add more functions to read fields of 'message' record
...
- Add id/1, topic/1, from/1, payload/1 and timestamp/1 functions
- Improve the test cases
2019-04-02 15:15:13 +08:00
Gilbert Wong
7baa317d55
Delete useless assert to pass ci
2019-03-28 13:48:06 +08:00
Feng Lee
dba16aeea5
Add 'remove_header/2', 'get_headers/1' functions
...
- Adopt new 'export' style
- Add 'remove_header/2', 'get_headers/1' functions
- Remove 'remove_topic_alias/1' function
2019-03-22 11:31:26 +08:00
JianBo He
8a73c62f66
Fix followed packet parse failure ( #2333 )
...
To fix issue#2303(https://github.com/emqx/emqx/issues/2303 )
It will report the following error, when a connection sends a TCP frame contained many of MQTT packet and followed a split MQTT packet.
2019-03-20 10:14:52 +08:00
Gilbert Wong
d020ac0390
Delay receive waiting time
2019-03-18 14:20:52 +08:00
YoukiLin
88c32b2c41
Fix emqx_rpc badargs bug
2019-03-16 21:27:41 +08:00
Shawn
02fe8560e2
Improve emqx_hooks and credentials ( #2309 )
...
* Improve emqx_hooks and credentials
1. Modify the return modes of emqx hooks.
Change the return value of hook functions to:
- ok: stop the hook chain and return ok
- {error, Reason}: stop the hook chain and return error
- continue: continue the hook chain
And the return value of emqx_hooks:run/2 is changed to:
- ok
- {error, Reason}
And the return value of emqx_hooks:run/3:
- {ok, Acc}
- {error, Reason, Acc}
2. Treat password as a member of credentials.
Password should be wrapped in the `credentials` data-structure, as the
username/password pair together consists of an authentication method.
There can be some methods using some other credential data (e.g.
a JWT token), and these credential data should also be wrapped in the
the `credentials` data-structure.
An event `client.authenticate` is triggered when an user logs in:
```erlang
emqx_hooks:run('client.authenticate', [], Credentials)
```
A `default callback` that deny/allow any user (according to the
`allow_anonymous` config) should be appended to the end of the
callback chain.
The `credentails` is passed through all of the callbacks, and
can be changed over in this process.
* Refactor emqx hooks return mode
* Remove password from PState
2019-03-16 10:43:53 +08:00
Feng Lee
56718e35cb
Add emqx_topic:tokens/1 function ( #2305 )
...
* Add emqx_topic:tokens/1 function
2019-03-13 23:31:44 +08:00
Shawn
111b66121c
Support TLS/DTLS PSK ( #2297 )
...
* Improve filter functions for emqx-hook
* Add PSK hook
* Reset hook args for filter functions
2019-03-13 22:24:19 +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 Wong
27a7105fac
Fix emqx_alarm_handler_SUITE
...
Prior to this change, emqx_alarm_handler_SUITE read emqx.conf rather
gen.emqx.conf which would trigger unexpected errors
This change fix this issue.
2019-03-13 10:52:15 +08:00
周子博
6816c1ac3e
Delete needless test case in emqx_protocol_SUITE
2019-03-12 10:17:22 +08:00
spring2maz
1e27098e8c
Drain msg queue for deterministic test
2019-03-05 04:28:01 +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
c8e2840126
Merge fix conflicts
2019-02-28 17:02:39 +08:00
linjun
814fd3fc9e
Fix test case
2019-02-28 16:36:47 +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
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
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
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
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
fbe67e6784
Introduce new bridge impl
2019-02-28 11:17:27 +08:00
linjun
1fe7431370
Adjusting test case
2019-02-27 16:33:49 +08:00
linjun
e16f2fe1fd
Increasing coverage for emqx_message
2019-02-22 17:11:02 +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
turtleDeng
00863acea3
Merge emqx30 ( #2181 )
...
* Change the reason code in will topic acl check (#2168 )
* Fix bridge bug (#2160 )
* Limit bridge QoS less than 1
* Improve shared sub dispatch implementation. (#2144 )
* Upgrade ekka, esockd libraries
* Improve the 'try_open_session' function
* Reload config (#2180 )
2019-01-25 13:01:48 +08:00
Shawn
b8929a46c1
Fix the EXIT outputs in Travis CI ( #2154 )
...
* Fix the Exit in testcases
* Fix Exit in emqx_mod_sup_SUITE
* Update testcases for log_tracer
* Fix Exit in emqx_protocol_SUITE
* Add will_acl_check
* Fix more Exits
2019-01-17 17:14:51 +08:00
tigercl
bc31faac6b
Fix will msg ( #2156 )
...
* Remove will_msg and will_topic from protocol state
* Modify try_open_session/1
2019-01-17 13:57:42 +08:00
YoukiLin
3748cd434d
Add test case for emqx_sys_mon ( #2150 )
2019-01-12 23:09:39 +08:00
Gilbert Wong
7aa46896df
Fix typo
2019-01-11 16:41:20 +08:00
Gilbert Wong
ec03f8e1fa
Fix the deliver packet bug and add test case
2019-01-11 16:41:20 +08:00
turtleDeng
a5f9466040
QoS0 msg support msgid ( #2145 )
...
* QoS0 msg support msgid
* Fix testcase
2019-01-11 11:47:10 +08:00
Feng Lee
fe0f5333b3
Improve the pool design
...
- Move 'emqx_pool:start_link/0' to emqx_pool_sup module
- Use the new log macros
- Add more test cases
2019-01-10 08:49:58 +08:00
Feng Lee
36a4eaec02
Fix the test case for 'emqx_router:print_routes/1'
2019-01-09 12:10:54 +08:00
Feng Lee
52241a7804
Add more test cases for code coverage
2019-01-09 11:57:22 +08:00
Feng Lee
d27c824ed8
Add test case for emqx_trie:empty/0
2019-01-09 11:57:22 +08:00
Gilbert
9f83544fce
Fix failed testcase ( #2127 )
...
* Fix failed test case
Prior to this change, terry-xiaoyu enhanced the cuttlefish to
support emqx enterprise edtion configuration entries. But it cause 6
test case failed.
* Fix dep-vsn-check
2019-01-06 19:53:01 +08:00
YoukiLin
78b3c375d8
Improving 'emqx_ws_connection' coverage ( #2107 )
2019-01-03 12:59:39 +08:00
turtleDeng
6a1ebe299a
Merge emqx32 to emqx30 ( #2112 )
2018-12-28 19:44:41 +08:00
Gilbert
1797aadbe7
Fix unsuback compat ( #2102 )
2018-12-22 18:47:38 +08:00
turtled
7d3357e0f3
Merge emqx32
2018-12-21 16:01:32 +08:00
Feng Lee
10e5210581
Workaround ssl:setopts(SslSock, [{active, N}]) ( #2095 )
...
* Set '{active, true}' for SSL socket
2018-12-21 15:39:24 +08:00
tigercl
31bf01fd7a
Fix bug in topic alias maximum ( #2074 )
...
* Fix bug in topic alias maximum
2018-12-21 14:01:21 +08:00
Gilbert
bf7f10ecd1
Add will topic validation and acl check ( #2075 )
...
* Add will topic validation and acl check
2018-12-21 10:49:03 +08:00
Feng Lee
c93d0fb174
Add test cases for emqx_gc module
2018-12-21 10:28:33 +08:00
Gilbert Wong
1007105b57
Delete metrics test in session test suite
2018-12-20 22:31:19 +08:00
turtled
b4833d6973
Fixed conflicts
2018-12-20 22:23:20 +08:00
YoukiLin
6b538d2363
Add test cases for 'emqx_cm' and 'emqx_sm' ( #2073 )
...
Add test cases for 'emqx_cm' and 'emqx_cn'
2018-12-20 21:03:40 +08:00
Feng Lee
14cffcf7fb
Add the 'emqx_pd' module
...
Add utility functions for erlang process dictionary
Add test cases for emqx_pd
2018-12-20 16:45:25 +08:00
tigercl
97474171d0
Better report errors in acl.conf ( #2065 )
2018-12-19 23:06:48 +08:00
turtled
7a1ec580b0
Update broker test cases
2018-12-19 17:18:26 +08:00
Gilbert
7d9e350bbe
Add option to disconnect client in case acl deny ( #2059 )
...
* Add option to disconnect client in case acl deny
2018-12-19 10:34:06 +08:00
turtled
666d9706a3
Fixed conflicts
2018-12-18 16:41:10 +08:00
Feng Lee
721b72b96a
Add 'active_n' option to optimize the CPU usage of emqx_connection ( #2060 )
...
* Add 'active_n' option to optimize the CPU usage of emqx_connection
* Supports batch processing 'DOWN' events
2018-12-17 19:53:29 +08:00
turtled
34370ef622
Merge branch 'issue#1983' into emqx30
2018-12-14 17:55:36 +08:00
Feng Lee
2a747c9d53
Improve the subscription sharding.
2018-12-12 13:40:01 +08:00
Feng Lee
b279eff181
Add t_mnesia/1 test case
2018-12-12 13:40:01 +08:00
Feng Lee
33830d8120
Improve the design of trie, router and broker modules
...
1. Add do_add_route/1 do_add_route/2, do_delete_route/1,
do_delete_route/2 APIs in emqx_router module
2. Improve the code of emqx_trie module
3. Update the emqx_broker module to call the new APIs of emqx_router
2018-12-12 13:40:01 +08:00
周子博
ec2e289776
Fix crash in emqx_acl_internal:filter/2
2018-12-10 11:13:25 +08:00
Feng Lee
faac09eac9
Merge subscription sharding
2018-12-10 10:28:01 +08:00
Gilbert Wong
e0eb76afa6
Fix subscription
2018-12-08 16:09:54 +08:00
Feng Lee
bce1ddc5c4
Implement a hash-based subscription sharding
2018-12-06 18:45:07 +08:00
Feng Lee
b4d981daf2
Add a sequence module to generate index for subscription sharding
2018-12-04 15:59:24 +08:00
Gilbert Wong
61030c8d10
Add eunit tests to increase coverage.
2018-12-03 09:15:10 +08:00
Gilbert
295a9d692e
Fix the coverage shaky ( #2010 )
2018-11-30 19:16:48 +08:00
周子博
ddb9eaef7b
Improve test coverage of emqx_metrics
2018-11-30 17:44:29 +08:00
周子博
ea62b15c87
Alter apis provided by emqx_metrics, and use existing timer to commit metrics
2018-11-30 17:44:29 +08:00
周子博
194dbc02c8
Add batch commit for metrics
2018-11-30 17:44:29 +08:00
Feng Lee
21ed012a0c
Add an elegant batch module
2018-11-29 10:13:09 +08:00
周子博
5c291ff23e
Fix the 'route_batch_delete' config
2018-11-28 16:04:04 +08:00
tigercl
14b8036576
Use username replace id(issue#1737) ( #1961 )
...
* Use username replace id(issue#1737)
* Add test case for issue#1737
* Make with_connection/2 support batch connect
2018-11-21 22:51:33 +08:00
spring2maz
a2c658ba19
Add acking mechamism for shared dispatch ( #1872 )
...
* Add acking mechamism for shared dispatch
For QoS0 messages, no acking
For QoS1/2 messages, 'ACK' at any of events below:
- ACK when QoS is downgraded to 0
- Message is sent to connection process
'NACK' at any of events below:
- Message queue is full and the receiving session starts to drop old messages
- The receiving session crash
Upon 'NACK', messages are dispatched to the 'next' subscriber in the group,
depending on the shared subscription dispatch strategy.
2018-11-21 22:49:45 +08:00