mirror of
https://github.com/fhmq/hmq.git
synced 2026-08-31 23:04:52 +00:00
update retained message even if it's already there (#70)
Signed-off-by: Liu Qing <winglq@gmail.com>
This commit is contained in:
@@ -104,7 +104,7 @@ func (this *memTopics) Retain(msg *packets.PublishPacket) error {
|
|||||||
return this.rroot.rremove([]byte(msg.TopicName))
|
return this.rroot.rremove([]byte(msg.TopicName))
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.rroot.rinsert([]byte(msg.TopicName), msg)
|
return this.rroot.rinsertOrUpdate([]byte(msg.TopicName), msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *memTopics) Retained(topic []byte, msgs *[]*packets.PublishPacket) error {
|
func (this *memTopics) Retained(topic []byte, msgs *[]*packets.PublishPacket) error {
|
||||||
@@ -286,13 +286,11 @@ func newRNode() *rnode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *rnode) rinsert(topic []byte, msg *packets.PublishPacket) error {
|
func (this *rnode) rinsertOrUpdate(topic []byte, msg *packets.PublishPacket) error {
|
||||||
// If there's no more topic levels, that means we are at the matching rnode.
|
// If there's no more topic levels, that means we are at the matching rnode.
|
||||||
if len(topic) == 0 {
|
if len(topic) == 0 {
|
||||||
// Reuse the message if possible
|
// Reuse the message if possible
|
||||||
if this.msg == nil {
|
|
||||||
this.msg = msg
|
this.msg = msg
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -315,7 +313,7 @@ func (this *rnode) rinsert(topic []byte, msg *packets.PublishPacket) error {
|
|||||||
this.rnodes[level] = n
|
this.rnodes[level] = n
|
||||||
}
|
}
|
||||||
|
|
||||||
return n.rinsert(rem, msg)
|
return n.rinsertOrUpdate(rem, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove the retained message for the supplied topic
|
// Remove the retained message for the supplied topic
|
||||||
|
|||||||
Reference in New Issue
Block a user