Merge pull request #7592 from DDDHuang/bridge_mqtt_subqos
fix: bridge mqtt config schema, subscriptions with default QoS 0
This commit is contained in:
commit
9ab533b206
|
@ -214,8 +214,19 @@
|
|||
end,
|
||||
Subscriptions = fun(Name) ->
|
||||
Configs = cuttlefish_variable:filter_by_prefix("bridge.mqtt." ++ Name ++ ".subscription", Conf),
|
||||
lists:zip([Topic || {_, Topic} <- lists:sort([{I, Topic} || {[_, _, _, "subscription", I, "topic"], Topic} <- Configs])],
|
||||
[QoS || {_, QoS} <- lists:sort([{I, QoS} || {[_, _, _, "subscription", I, "qos"], QoS} <- Configs])])
|
||||
Configs = cuttlefish_variable:filter_by_prefix("bridge.mqtt." ++ Name ++ ".subscription", Conf),
|
||||
SubConfId = lists:usort([{T, I} || {[_, _, _, "subscription", I, "topic"], T} <- Configs]),
|
||||
FindQoS = fun({T, I}) ->
|
||||
QoSFilter = fun
|
||||
({[_, _, _, "subscription", Index, "qos"], QoS}) -> I == Index andalso {true, QoS};
|
||||
(_Topic) -> false
|
||||
end,
|
||||
case lists:filtermap(QoSFilter, Configs) of
|
||||
[] -> {T, 0};
|
||||
QoSList -> {T, hd(QoSList)}
|
||||
end
|
||||
end,
|
||||
[FindQoS(TopicAndIndex) || TopicAndIndex <- SubConfId]
|
||||
end,
|
||||
IsNodeAddr = fun(Addr) ->
|
||||
case string:tokens(Addr, "@") of
|
||||
|
|
Loading…
Reference in New Issue