Zaiming (Stone) Shi
2514f474b0
Sync v4.3 to v4.4 ( #6262 )
...
* fix(http): fix duplicate http headers
* chore(appup): add appup.src
* fix(appup): fix multiply defined module in appup
* chore(appup): fix wrong version
* chore(ekka): Bump version to 0.8.1.5
* fix(update_appup): Fix warnings, add support for external repos
* build: use find command's -delete option
* ci: do not sync master branch
* build: ensure openssl11
* build: copy only libcrypto and libtinfo
* fix(trace): handler_id now always return atom
Co-authored-by: zhouzb <zhouzb@emqx.io>
Co-authored-by: k32 <10274441+k32@users.noreply.github.com>
2021-11-23 09:33:20 +08:00
Zaiming Shi
0f52824872
refactor(trace): hash non-printable or too long names
2021-11-22 16:59:17 +01:00
zhongwencool
30fb9dd7ae
fix: name must be printable unicode and len < 256
2021-11-22 22:20:02 +08:00
zhongwencool
d76275d17d
feat: add support ip_address trace options
2021-11-22 15:20:24 +08:00
zhouzb
5e3fe6714e
fix(http): fix duplicate http headers
2021-11-17 14:14:12 +08:00
Zaiming Shi
d05e2ff0b1
Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4-alpha.1
2021-11-15 13:41:51 +01:00
Zaiming Shi
74b6b5214a
test(emqx_cm_SUITE): add a gen_server call sync
2021-11-11 10:33:31 +01:00
zhongwencool
835ad52498
feat(trace): http api for trace ( #6052 )
...
* feat(trace): add http trace API
* feat: sub/unsub trace topic
* chore(trace): stream log use _page and _limit
* fix: elvis warning
* fix: mod_trace test failed
* fix: http api meta rename _page/_limit to _page/_limit
* fix: clientid string not working
* fix: add emqx_mod_trace to module
* fix(trace): fixed by review suggestions
2021-11-11 14:54:40 +08:00
zhongwencool
06a1b37992
fix(test): flaky mqtt expiry test case. ( #6111 )
2021-11-10 15:41:31 +08:00
zhongwencool
fa34d8353e
fix(test): flaky mqtt expiry test case. ( #6112 )
2021-11-10 15:40:46 +08:00
Thales Macedo Garitezi
b9270ad719
feat(stats): track live / connected channel count for monitoring
...
In order to correctly display the number of connected clients in our
monitor dashboard, we need to track those connections that are
actually connected to clients, not considering connections from
persistent sessions that are disconnected. Today, the
`connections.count` that is displayed in the dashboards considers
those disconnected persistent sessions as well.
2021-11-08 14:45:57 -03:00
Zaiming Shi
7f4809f61a
fix(session): force kill session for 'kick' and 'discard'
...
Prior to this fix, 'kick' and 'discard' calls may timeout (or
fail for other reason), failures lead to only a log, then
continue to allow the new session to get registered.
As a result, in case a client is stuck, there is no way to
force it to step down, end up with multiple connections (sessions)
for the client ID in dashboard.
After this fix, the stale pids are notified to shutdown
via a gen_server:call, and forced with a exit(Pid, kill) for any
exception happend to the gen_server:call
2021-10-30 16:38:36 +02:00
Zaiming Shi
9038da0bd2
fix(ws_connection): check origin failure should return 403 not 500
2021-10-15 15:49:26 +08:00
Zaiming Shi
7c1ce8bc70
chore: fix flaky test cm_SUITE open session racecondition
2021-10-07 11:53:53 +02:00
Zaiming Shi
3fa442f4a4
test(emqx_broker): fix flaky tests
2021-10-05 20:55:36 +02:00
JimMoen
2dba91d6d0
chore(test): variable integer test.
2021-09-28 15:15:05 +08:00
k32
5fc1036cf7
chore(mqueue): Implement live upgrade
2021-09-06 23:15:14 +02:00
k32
4eacaa29bd
feat(mqueue): Interleave messages with different priorities
2021-09-06 22:22:48 +02:00
Turtle
6aa61ea78d
fix(test): Increase the delay time
2021-08-13 17:29:51 +08:00
Rory Z
ff96250b0b
chore(tests): fix conunt error
2021-08-06 15:31:32 +08:00
Turtle
c45de03ac8
chore(version): update emqx version to 4.3.7
...
Signed-off-by: zhanghongtong <rory-z@outlook.com>
2021-08-05 10:00:03 +08:00
JianBo He
07c29e8c55
chore(acl): support ipaddr list
2021-07-28 13:54:13 +08:00
Zaiming Shi
cddfa928b1
test: deterministic tests
2021-06-05 19:53:56 +02:00
Zaiming Shi
8bf3c511d8
test: fix a flacky test case
2021-06-04 16:04:58 +02:00
Tobias Lindahl
18484577b1
test: enable non-running test suite
...
Due to a name clash a ct testsuite was previously not running.
2021-06-03 10:42:51 +02:00
JianBo He
3a89b1f00b
chore(action): fix syntax error ( #4885 )
2021-05-31 15:08:52 +08:00
k32
812faf08a1
chore(logger): Update snabbkaffe to 0.13.0
2021-05-25 21:15:59 +02:00
Zaiming (Stone) Shi
37c559a08d
Merge pull request #4858 from zmstone/fix-frame-parse-split-function-clause
...
fix(emqx_frame): no need to split incoming bytes
2021-05-25 06:57:17 +02:00
Zaiming Shi
979e495a1e
fix(emqx_frame): no need to split incoming bytes
...
Prior to this commit, there was a bug in emqx_frame:split/2
the tail number of bytes was used for header number of bytes
whens split. As a result, if the tail happens to be longer
then haeder, the parsing state becomes invalid and it crashes
when the next packet arrives
The split was a over-engineered micro-optimization, so it
has been deleted instead of fixed
2021-05-24 21:07:03 +02:00
Zaiming Shi
6701d716dd
feat: async API to support tcp keepalive inet options
2021-05-24 19:01:13 +02:00
Zaiming Shi
8443aa5e21
chore(typo): sepecial -> special
2021-05-24 10:45:56 +02:00
Zaiming Shi
faecde9ce1
fix(emqx_plugins): allow loading conf for plugin app dir
...
Prior to this change, plugin config files are only allowed
to be placed in the collective config dir etc/plugins.
In order to support external plugin's drop-in deployment,
this commit made emqx_plugins module to read conf file
in application's etc dir
2021-05-24 10:45:56 +02:00
Zaiming Shi
4e1798e3f3
fix(emqx_cm): do not log noproc as error
...
1. websocket call exit with noproc reason.
2. do not capture stacktrace when no need for it
2021-05-19 23:16:11 +02:00
Zaiming Shi
55316b3ac3
perf: micro optimisation: no lookup for non-wildcard in trie
2021-05-14 10:45:58 +02:00
Zaiming Shi
3c03047c9f
fix(emqx_trie): performance issue when many levels
2021-05-14 10:45:58 +02:00
Zaiming Shi
05c5378265
feat(http_lib): add normalise_headers API
2021-05-07 10:14:19 +08:00
Zaiming Shi
f8700e3f27
fix(emqx_packet): no crash if publish packet has no data
2021-05-04 13:48:35 +02:00
Zaiming Shi
29475eb610
feat(emqx_http_lib): try to parse host ip
2021-04-28 10:43:36 +02:00
Zaiming Shi
eb946eb80c
fix(emqx_trie): do not try to match wildcard topics
2021-04-26 14:18:40 +02:00
Zaiming Shi
22e72cdd82
refactor(emqx_trie): rename record from eqmx_topic to emqx_trie
2021-04-26 14:18:40 +02:00
Zaiming Shi
bc6a87946c
refactor(emqx_trie): store only prefixes
...
This commit refactors emqx_trie implementation
with mainly two changes
1. Deleted the edge table.
In the old implementation, trie consist of nodes and edges.
e.g. for topic 'a/b/+/d', node 'a' with edge 'b'
points to node 'a/b' and so on.
However, edges can be computed at runtime,
so there is no need to store them in a table.
2021-04-26 14:18:40 +02:00
Zaiming Shi
d61b100cc9
chore: more copyright updates
2021-04-23 20:43:00 +02:00
Zaiming Shi
6354e75626
chore: update copyrights
2021-04-23 20:43:00 +02:00
Zaiming Shi
c81df7278f
test(trace): split test case
2021-04-23 06:54:10 +02:00
Zaiming Shi
3547dc4c93
fix(log): client id as string for log metadata
...
so it does not print <<"...">> to the logs
2021-04-23 06:54:10 +02:00
Zaiming Shi
fd69969014
refactor(logging): Log to single line
2021-04-23 06:54:10 +02:00
JianBo He
1f258a0499
test(proper): fix cant_generate error
2021-04-19 22:03:51 +02:00
Shawn
47817ea28d
fix(emqx): meck emqx_connection:call/3 in testcase
2021-04-16 13:37:24 +08:00
Shawn
4885171e4f
fix(emqx): add timeout for open/kick a session
2021-04-15 23:09:58 +08:00
Shawn
ebac8c1612
fix(emqx): set the timetrap of emqx_cm_SUITE to 1 min
2021-04-15 23:09:58 +08:00
JianBo He
04cbb3751d
test(proper): wait tcp port closed
2021-04-15 21:18:17 +08:00
JianBo He
4a388400a5
test(proper): ensure epmd started
2021-04-14 19:38:56 +08:00
JianBo He
c413af5c35
test(proper): track to the lastest code
...
- use limited atom type
- keep webhook confs testing to lastest schema
2021-04-14 19:38:56 +08:00
JianBo He
eb8c8021f0
test(proper): spefic the nodename for checking
2021-04-14 19:38:56 +08:00
z8674558
a48e7df4f5
feat(emqx_ws_connection): check http header to know real IP/port
2021-04-14 06:45:39 +00:00
JianBo He
16c999ed9b
Start emqx-modules application by default ( #4518 )
...
* fix(modules): start emqx_modules by default
* chore(test): eliminate some compile warnings
2021-04-12 09:45:31 +08:00
Zaiming Shi
25e0e121e5
chore(test): ensure snabbkaffe block until is not timeout
2021-04-09 10:18:25 +02:00
Zaiming Shi
b3b821e8c4
fix(flase): false
2021-04-08 00:34:43 +02:00
Zaiming Shi
6f5aa88562
chore(emqx_connection): Add a test case to cover oom kill
2021-03-30 10:08:13 +02:00
Zaiming Shi
5e2ba1cdc3
chore: Fix emqx_channel_SUITE meck orders
2021-03-29 09:42:07 +02:00
Zaiming Shi
e579c7624b
chore(channel): Add test case for receive-maximum check and override
2021-03-29 09:42:07 +02:00
zhanghongtong
72c1ee264c
chore(elvis): fix elvis error
2021-03-19 16:11:23 +08:00
zhanghongtong
568f4de6e5
fix(channel): fix the wrong acl check order
...
when subscribe, check the acl rule before run 'client.subscribe' hooks
2021-03-19 16:11:23 +08:00
Shawn
81602c973c
fix(emqx): deny pingreq when mqtt not connected #4370
2021-03-19 14:17:49 +08:00
zhouzb
fa8b2a5ac5
chore(test-cswsh): add test case for cswsh
2021-03-19 10:28:13 +08:00
Karol Kaczmarek
c7b44caa1d
feat(acl): Add possibility to remove all acl cache
2021-03-17 19:48:42 +01:00
Shawn
d6797760a1
fix(test): add testcases for ws subprotocols
2021-03-17 14:59:05 +08:00
z8674558
9087f0c138
feat(emqx_message): add from_map
2021-03-11 16:01:30 +09:00
Shawn
b400571dbb
fix(emqx): validate mqtt malformed varible byte integer
2021-03-10 10:41:57 +01:00
Zaiming Shi
c752f3bec5
Refactor http lib add uri parse ( #4292 )
...
* feat(http_lib): Add uri parse to emqx_http_lib
* fix(webhook): call emqx_http_lib to parse uri
* fix(auth-http): Call emqx_http_lib to parse uri
* fix(rule-engine): call emqx_http_lib to parse uri
2021-03-06 13:35:02 +08:00
Zaiming Shi
63c001a7aa
refactor(http-lib): Add emqx_http_lib
...
So far only uri_encode and uri_decode APIs
2021-03-03 21:38:10 +01:00
Zaiming Shi
6e0b53fbb9
fix(eunit): fix emqx_tls_lib_tests
2021-03-01 21:00:17 +08:00
Zaiming Shi
3dfa9f45c4
Merge pull request #4183 from zmstone/merge-e4.2.4-to-dev-4.3.0
...
Merge e4.2.4 to dev 4.3.0
2021-02-19 10:26:47 +01:00
Shawn
eec64e440d
fix(tracer): create short handler-id if clientid is too long ( #4164 )
...
* fix(tracer): create short handler-id if clientid is too long
No need to support lists and atoms for when tracing clients/topics.
2021-02-16 14:45:33 +08:00
Zaiming Shi
f9465dda16
Merge branch 'dev/v4.3.0' into merge-e4.2.4-to-dev-4.3.0
2021-02-14 21:41:23 +01:00
Zaiming Shi
b4b318cb86
chore(style): fix elvis check for emqx_connection_SUITE
2021-02-13 11:41:18 +01:00
Zaiming Shi
9b82112b7c
Merge remote-tracking branch 'origin/dev/e4.3.0' into merge-e4.2.4-to-dev-4.3.0
2021-02-13 11:10:08 +01:00
Zaiming Shi
507759b9f1
Revert "refactor(emqx_modules): Move modules config to app dir"
...
This reverts commit 9cae8784c0
.
Because the reverted change broke compatibility with 4.2.x
configuration.
2021-02-11 16:44:12 +01:00
Zaiming Shi
514c2c0af5
Merge pull request #4169 from zmstone/refactor-move-modules-config-to-emqx-modules-app
...
refactor(emqx_modules): Move modules config to app dir
2021-02-10 09:03:04 +01:00
Zaiming Shi
d74bb81ff1
chore(style): make elvis happy
2021-02-10 00:02:52 +01:00
Zaiming Shi
9cae8784c0
refactor(emqx_modules): Move modules config to app dir
2021-02-10 00:02:52 +01:00
Zaiming Shi
2852ac79d4
feat(tls): Add a tls lib module
...
emqx_tls_lib is added to help ensure integrity of tls version
and cipher options.
2021-02-09 21:20:26 +01:00
Zaiming Shi
7aff861f9b
refactor(emqx_modules): Move emqx_modules to lib-opensource
...
emqx_moduels for enterprise is refactored as a lib/plugin
in order to avoid merge conflicts, we make sure they can
co-exist in the same branch, because lib-opensource is compiled
in opensource project and lib-enterprise (to be added) is
compiled in enterprise project
2021-02-08 21:35:44 +01:00
Zaiming Shi
7c94a02bdd
Merge pull request #4134 from jovdipp/tlsv1.3-as-default
...
Tlsv1.3 as default
2021-02-05 21:33:03 +01:00
Jóvan S. Dippenaar
6541c589ab
test(tls1.3): Tests for default ssl config, as well as specific tls versions ( 1.1, 1.2, 1.3 )
2021-02-05 16:21:28 +13:00
emqx-ci-robot
6c1129dc6a
Auto-pull-request-on-2021-01-29 ( #4114 )
...
* fix(share sub): fix the issue that the number of subscriptions dropped to 0 during the picking subscriber and caused a crash
* Connection Busy Alarms (#3992 )
feat(emqx_connection): improve port_busy alarm
* fix(emqx_connection): tune the congestion alarm params
* chore(deps): upgrade esockd to 5.7.5
* fix(appup): correct the appup file
2021-01-30 10:30:18 +08:00
tigercl
5878950dc3
feat(websocket): support for checking subprotocols ( #4099 )
2021-01-28 20:42:57 +08:00
Zaiming Shi
4680ba574c
chore(emqx_vm): Delete get_ets_object, not used
2021-01-22 09:21:45 +01:00
Zaiming Shi
47df29ae49
chore(emqx_vm): delete stale code
...
The port binary format is no longer compatible in OTP 23
2021-01-22 07:50:00 +01:00
Zaiming Shi
ca32ac310f
chore(style): make elvis happy
2021-01-21 21:05:56 +01:00
Zaiming Shi
0087303b25
feat(shared_sub): Support hashing from source topic.
2021-01-21 21:05:56 +01:00
zhouzb
bcb63bcc18
fix(test case): fix test case
2020-12-28 17:45:19 +08:00
JianBo He
739e49218f
fix(cm): fix the problem of registering a channel twice ( #3831 )
2020-12-28 11:03:29 +08:00
zhanghongtong
3ef08f9ce3
test(meck): add meck unload after meck load
2020-12-22 13:39:49 +08:00
zhanghongtong
ce6411532b
test(emqx): fix test case error for emqx
2020-12-22 13:39:49 +08:00
JianBo He
826419df5f
test(limiter): more robust asserting logic
2020-12-14 11:24:07 +08:00
Shawn
10dbb5bc96
Fix testcases warns ( #3906 )
2020-12-11 18:54:48 +08:00
Zaiming Shi
d67212e7fa
chore(test): Make test profile build
2020-12-11 08:19:26 +01:00
JianBo He
7f556d36d1
Merge branch 'dev/v4.3.0' into e422_to_v430
2020-12-09 11:28:36 +08:00
Zaiming Shi
6d1cd6b7ea
refactor(emqx_password): move the module to emqx application
...
Future plugins will require emqx as a dependency.
This commit also brings back bcrypt to the system which was temporary
removed when converting to umbrella project
2020-12-08 22:09:59 +01:00