Merge pull request #1541 from emqtt/emq24

Version 2.3.6
This commit is contained in:
huangdan 2018-03-24 00:51:43 +08:00 committed by GitHub
commit 8822468528
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 6 deletions

View File

@ -1,6 +1,6 @@
PROJECT = emqttd PROJECT = emqttd
PROJECT_DESCRIPTION = Erlang MQTT Broker PROJECT_DESCRIPTION = Erlang MQTT Broker
PROJECT_VERSION = 2.3.5 PROJECT_VERSION = 2.3.6
DEPS = goldrush gproc lager esockd ekka mochiweb pbkdf2 lager_syslog bcrypt clique jsx DEPS = goldrush gproc lager esockd ekka mochiweb pbkdf2 lager_syslog bcrypt clique jsx

View File

@ -1,6 +1,6 @@
{application,emqttd, {application,emqttd,
[{description,"Erlang MQTT Broker"}, [{description,"Erlang MQTT Broker"},
{vsn,"2.3.5"}, {vsn,"2.3.6"},
{modules,[]}, {modules,[]},
{registered,[emqttd_sup]}, {registered,[emqttd_sup]},
{applications,[kernel,stdlib,gproc,lager,esockd,mochiweb, {applications,[kernel,stdlib,gproc,lager,esockd,mochiweb,

View File

@ -406,7 +406,7 @@ shutdown(Error, State = #proto_state{will_msg = WillMsg}) ->
%% Auth failure not publish the will message %% Auth failure not publish the will message
case Error =:= auth_failure of case Error =:= auth_failure of
true -> ok; true -> ok;
false -> send_willmsg(Client, WillMsg) false -> send_willmsg(State, WillMsg)
end, end,
emqttd_hooks:run('client.disconnected', [Error], Client), emqttd_hooks:run('client.disconnected', [Error], Client),
%% let it down %% let it down
@ -429,10 +429,14 @@ maybe_set_clientid(State = #proto_state{client_id = NullId})
maybe_set_clientid(State) -> maybe_set_clientid(State) ->
State. State.
send_willmsg(_Client, undefined) -> send_willmsg(_State, undefined) ->
ignore; ignore;
send_willmsg(#mqtt_client{client_id = ClientId, username = Username}, WillMsg) -> send_willmsg(State = #proto_state{client_id = ClientId, username = Username, is_superuser = IsSuper},
emqttd:publish(WillMsg#mqtt_message{from = {ClientId, Username}}). WillMsg = #mqtt_message{topic = Topic}) ->
case IsSuper orelse allow == check_acl(publish, Topic, client(State)) of
true -> emqttd:publish(WillMsg#mqtt_message{from = {ClientId, Username}});
false -> ?LOG(error, "Cannot publish LWT message to ~s for ACL Deny", [Topic], State)
end.
start_keepalive(0, _State) -> ignore; start_keepalive(0, _State) -> ignore;