Commit Graph

189 Commits

Author SHA1 Message Date
JianBo He 85aa120b06 Merge branch 'release-v43' into release-v44 2022-10-11 10:24:22 +08:00
JianBo He e2b0048e88 refactor(flapping): count flapping event if connecting failed 2022-10-08 10:06:20 +08:00
DDDHuang 13f3dafe22 refactor: enhance the flapping detect accuracy
Count the `flapping` event as long as a client try to connect to server
whatever it suceed or failed. It is more helpful to improve
stablebility.
2022-10-08 09:56:23 +08:00
Thales Macedo Garitezi 954e276124 Merge remote-tracking branch 'origin/release-v43' into merge-rv43-into-rv44-a 2022-09-28 09:46:03 -03:00
Thales Macedo Garitezi 2e0eae54f8 fix(acl): check ACL before publishing last will testament (lwt) message (4.3) 2022-09-26 15:22:29 -03:00
Thales Macedo Garitezi d3c291c4d0 Merge remote-tracking branch 'origin/main-v4.3' into merge-v43-into-v44-h 2022-09-15 10:13:47 -03:00
Thales Macedo Garitezi 0599393741
Merge pull request #8942 from thalesmg/fix-ignore-dialyzer-pt1-43
chore: fix ignored dialyzer warnings (part 1) (4.3)
2022-09-14 14:56:59 -03:00
Thales Macedo Garitezi d72ca84af0 chore: fix ignored dialyzer warnings (part 1) (4.3) 2022-09-12 10:56:35 -03:00
Thales Macedo Garitezi 1f5103b390 test: add test case for not publishing will msg when not authorized 2022-09-12 09:04:54 -03:00
Zaiming (Stone) Shi 1013f221e0 Merge remote-tracking branch 'origin/dev/v4.3.20' into dev/v4.4.9 2022-09-12 09:25:07 +02:00
JianBo He 8ec432481d fix(shared-sub): fix dead loop if all subscribers are disconected
In `broker.shared_dispatch_ack_enabled=true`, if all subscribers seesion are
kept and but connnection gone. the subscribers will reply NACKs if someone shared
delivers reached. However, the shared subscription always pick a subscriber to retry,
even if it has already replied with NACKs.

After this PR, the subscriber replies with an ACK and stores it into mqueue,
instead of replying with a NACK
2022-09-07 17:03:41 +08:00
Thales Macedo Garitezi e05605bef0 Merge remote-tracking branch 'origin/main-v4.3' into merge-v43-into-v44-e 2022-08-30 16:38:14 -03:00
Thales Macedo Garitezi 977ac04d24 chore: fix dialyzer errors 2022-08-26 16:09:39 -03:00
zhongwencool 940ceb570d Merge branch 'main-v4.4' into copy-of-main-v4.3 2022-08-19 10:53:48 +08:00
firest b02a3b9429 fix(channel): Adjust the timing of the `client.connected` event 2022-08-15 14:10:19 +08:00
Ilya Averyanov a19fbe214f feat(node_rebalance): implement node evacuation and rebalancing 2022-08-13 11:32:14 +03:00
Xinyu Liu 2a89443377
Merge branch 'main-v4.4' into copy-of_main-v4.3 2022-06-29 22:27:49 +08:00
Thales Macedo Garitezi 5c89998049 fix(hooks): return error on hook-removed subscription rather than deleting it
Following https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901178
2022-06-29 11:08:22 -03:00
Xinyu Liu 565b6b0eb3
Merge branch 'main-v4.4' into copy-of_main-v4.3 2022-06-23 22:44:53 +08:00
firest 7084e510d6 feat(exclusive): refactor the implementation 2022-06-23 16:31:48 +08:00
Thales Macedo Garitezi 4bda62b195 fix(hooks): use hook response to stop subscriptions
Fixes https://github.com/emqx/emqx-lua-hook/issues/118

1) If the Lua hook returns an empty list, it should replace the final
topic filter list.
2) The subscribed topics after running the 'client.subscribe' hook
should not contain topics filtered out by the hooks.
2022-06-21 17:06:39 -03:00
Shawn ca842aa869 fix: merge main-v4.3 to main-v4.4 2022-05-23 11:23:27 +08:00
JimMoen 9435fe0bb9 refactor(metrics): more understandable auth metrics
`client.auth.success`/`client.auth.failure`
`client.auth.success.anonymous`
2022-05-20 17:48:41 +08:00
zhongwencool 761436c967 fix: don't allow empty username if username_as_clientid is true 2022-05-05 10:50:53 +08:00
JimMoen 6168745f90 chore: update copyright 2022-04-14 11:23:25 +08:00
JianBo He 604c384660 fix(channel): send will_msg if client has been kicked 2022-03-21 10:56:55 +08:00
JianBo He 8d3e953eef fix(channel): send DISCONNECT packet if connection has been kicked
fix #7241
2022-03-21 10:56:37 +08:00
JimMoen 31b006a0d1 fix(frame): `server_keepalive` only for MQTT v5.0 2022-02-21 18:46:53 +08:00
Thales Macedo Garitezi 8302cac329
fix(channel): wrong case clause when alias is inexistent
Fixes #6978 .
2022-02-14 13:18:07 -03:00
Shawn 9f7f5070b2 fix(channel): update the calls to emqx_session APIs 2022-01-13 13:33:27 +08:00
Shawn 9434c0fa6c feat(hook): new emqx hook 'delivery.dropped' 2022-01-12 18:34:20 +08:00
JianBo He cb8a3725b4 fix: disconnect the client due to exceed receive-maximum packets
As described in the 5.0 specification, we should disconnect clients that
exceed the receive-maximum limit.

> If it receives more than Receive Maximum QoS 1 and QoS 2 PUBLISH packets
where it has not sent a PUBACK or PUBCOMP in response, **the Server uses a
DISCONNECT packet with Reason Code 0x9**

fix: #6447
2021-12-23 08:48:24 +08:00
Tobias Lindahl 2348e612fa fix(emqx_channel): fix race condition in session takeover
Sessions must not enqueue messages when another process is taking over
the client id, since it already passed on the message queue in the
session state.

Without this fix, messages arriving after `{takeover, 'begin'} to a
channel with no connection (i.e., a persistent session) would be lost.
2021-12-07 16:05:49 +01:00
JianBo He c9d39b4d35 chore(channel): remove redundant logs
Multiple sock_closed events may be generated,
so we need to allow sock_closed events to be reentrant
2021-11-01 18:17:38 +08:00
Tobias Lindahl 90529e18c6 fix: including subscription id keeps correct return code for qos > 0
When subscription id is set, the return code was set to 0 rather than
the provided qos number due to earlier fix of acl check order.
2021-06-03 10:44:13 +02:00
Turtle e8790f6e11 fix(mqtt-sn): Fix stop due to keepAlive at sleep mode 2021-05-21 19:22:32 +08:00
Zaiming Shi 6354e75626 chore: update copyrights 2021-04-23 20:43:00 +02:00
Shawn 327b0c0995 fix(mqtt_sn): send pingresp until all pubacks received 2021-04-10 09:36:56 +08:00
wwhai 2e30d7803f fix(channel): fix `keep-alive` problem 2021-03-30 16:01:42 +08:00
Shawn 7bf6ee0f4b
fix(mqtt-sn): sleep mode not working #4434 (#4435) 2021-03-29 17:51:49 +08:00
Zaiming Shi 6c77fa1bf7 fix(emqx_channel): Receive Maximum spec compliance
According to MQTT 5.0 specification
If the Receive Maximum value is absent then its value defaults to
65,535.
2021-03-29 09:42:07 +02:00
Zaiming Shi b10a60cddb fix(conninfo): Ensure receive_maximum do not exceed limit 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
z8674558 3daefe954b chore(src): fix elvis 2021-03-03 20:06:31 +09:00
z8674558 a8558bc7b5 chore(emqx_channel): ignore peer_cert_as/5 from dialyzer 2021-03-03 20:06:31 +09:00
zhanghongtong cae0849152 fix(emqx_channel): fix bug when publish deny
fix the bug of replying to puback when the publish message with Qos equal to 2 is deny
2021-03-02 17:54:22 +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
Benjamin Große 28f9b4d519 feat(peer_cert_as_clientid): peer_cert_as_clientid = cn | dn | crt | pem | md5
pem is base64 encoded instead of binary crt

peer_cert_as_username=crt breaks exhook proto utf8 parsing of username

crt cannot be used in a topic name due to being invalid utf8
pem cannot be used in a topic name due to having slashes

peer_cert_as_clientid = md5 allows to e.g. subscribe to "t/%c" with ACL

existing peer_cert_as_username combinations are unaffected.
2021-02-19 10:53:11 +08: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