// defensive check that this is the first delivery trace -- delivery status should be unknown
ifdrec.status!=deliveryUnknown{
log.Warnf("unexpected delivery trace: message from %s was first seen %s ago and has delivery status %d",msg.ReceivedFrom,time.Now().Sub(drec.firstSeen),drec.status)
returnnearFirstPeers
peersMap,ok:=t.nearFirst[t.msgID(msg.Message)]
if!ok{
return[]peer.ID{}
}
drec.status=deliveryValid
drec.validated=time.Now()
forp:=rangedrec.peers{
// this check is to make sure a peer can't send us a message twice and get a double count
// if it is a first delivery.
ifp!=msg.ReceivedFrom{
nearFirstPeers=append(nearFirstPeers,p)
}
peers:=make([]peer.ID,0,len(peersMap))
forp:=rangepeersMap{
peers=append(peers,p)
}
// we're done with the peers map and can reclaim the memory
// defensive check that this is the first rejection trace -- delivery status should be unknown
ifdrec.status!=deliveryUnknown{
log.Warnf("unexpected rejection trace: message from %s was first seen %s ago and has delivery status %d",msg.ReceivedFrom,time.Now().Sub(drec.firstSeen),drec.status)
return
}
drec.status=deliveryInvalid
drec.peers=nil
// stop tracking near-first deliveries for rejected message