From 36ec2c78b2365e9eab4d134e04e62c2b0b9ecf2a Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Mon, 13 Jul 2015 11:36:00 +0000 Subject: [PATCH] Entries.filter and delete basically do the same thing. --- nameserver/entry.go | 14 ++------------ nameserver/entry_test.go | 4 ++-- nameserver/nameserver.go | 8 ++++---- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/nameserver/entry.go b/nameserver/entry.go index e178d70152..0ab22008b2 100644 --- a/nameserver/entry.go +++ b/nameserver/entry.go @@ -122,16 +122,6 @@ func (es *Entries) merge(incoming Entries) Entries { return newEntries } -func (es *Entries) filter(f func(*Entry) bool) { - var result Entries - for _, e := range *es { - if f(&e) { - result = append(result, e) - } - } - *es = result -} - func (es *Entries) tombstone(ourname router.PeerName, f func(*Entry) bool) *Entries { tombstoned := Entries{} for i, e := range *es { @@ -145,10 +135,10 @@ func (es *Entries) tombstone(ourname router.PeerName, f func(*Entry) bool) *Entr return &tombstoned } -func (es *Entries) delete(f func(*Entry) bool) { +func (es *Entries) filter(f func(*Entry) bool) { i := 0 for _, e := range *es { - if f(&e) { + if !f(&e) { continue } (*es)[i] = e diff --git a/nameserver/entry_test.go b/nameserver/entry_test.go index 16ebcbd539..5e8efa03e0 100644 --- a/nameserver/entry_test.go +++ b/nameserver/entry_test.go @@ -87,8 +87,8 @@ func TestDelete(t *testing.T) { Entry{Hostname: "B"}, } - es.delete(func(e *Entry) bool { - return e.Hostname == "A" + es.filter(func(e *Entry) bool { + return e.Hostname != "A" }) expected := Entries{ Entry{Hostname: "B"}, diff --git a/nameserver/nameserver.go b/nameserver/nameserver.go index 375b87b965..43562ae569 100644 --- a/nameserver/nameserver.go +++ b/nameserver/nameserver.go @@ -139,8 +139,8 @@ func (n *Nameserver) ContainerDied(ident string) error { func (n *Nameserver) PeerGone(peer *router.Peer) { n.Lock() defer n.Unlock() - n.entries.delete(func(e *Entry) bool { - return e.Origin == peer.Name + n.entries.filter(func(e *Entry) bool { + return e.Origin != peer.Name }) } @@ -172,8 +172,8 @@ func (n *Nameserver) deleteTombstones() { n.Lock() defer n.Unlock() now := time.Now().Unix() - n.entries.delete(func(e *Entry) bool { - return now-e.Tombstone > int64(tombstoneTimeout/time.Second) + n.entries.filter(func(e *Entry) bool { + return now-e.Tombstone <= int64(tombstoneTimeout/time.Second) }) }