From 1bc3811e193832d87015f4456210110102a3a962 Mon Sep 17 00:00:00 2001 From: Daniel Adam Date: Tue, 8 Aug 2023 12:08:08 +0200 Subject: [PATCH] fixup! net: Enhance observation management with ETag tracking --- net/observation/handler.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/net/observation/handler.go b/net/observation/handler.go index 6c2b2b83..88e9051f 100644 --- a/net/observation/handler.go +++ b/net/observation/handler.go @@ -248,14 +248,17 @@ func (o *Observation[C]) wantBeNotified(r *pool.Message) bool { o.private.mutex.Lock() defer o.private.mutex.Unlock() - if ValidSequenceNumber(o.private.obsSequence, obsSequence, o.private.lastEvent, now) { - o.private.obsSequence = obsSequence - o.private.lastEvent = now - if etag, err := r.ETag(); err == nil { - o.private.etag = etag - } - return true + if !ValidSequenceNumber(o.private.obsSequence, obsSequence, o.private.lastEvent, now) { + return false } - return false + o.private.obsSequence = obsSequence + o.private.lastEvent = now + if etag, err := r.ETag(); err == nil { + if len(o.private.etag) != len(etag) { + o.private.etag = make([]byte, len(etag)) + } + copy(o.private.etag, etag) + } + return true }