From 8b3f5fda0791fa68adafa8e074d04cad1a9784f6 Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Sat, 31 Oct 2015 17:27:43 +0000 Subject: [PATCH] Update relay parameters even if it already exists (fixes #3) --- cmd/strelaypoolsrv/main.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cmd/strelaypoolsrv/main.go b/cmd/strelaypoolsrv/main.go index 9312ef59..bbb3a0f1 100644 --- a/cmd/strelaypoolsrv/main.go +++ b/cmd/strelaypoolsrv/main.go @@ -383,11 +383,17 @@ func requestProcessor() { timer.Stop() } - for _, current := range knownRelays { + for i, current := range knownRelays { if current.uri.Host == request.relay.uri.Host { if debug { log.Println("Relay", request.relay, "already exists") } + + // Evict the old entry anyway, as configuration might have changed. + last := len(knownRelays) - 1 + knownRelays[i] = knownRelays[last] + knownRelays = knownRelays[:last] + goto found } } @@ -395,9 +401,11 @@ func requestProcessor() { if debug { log.Println("Adding new relay", request.relay) } - knownRelays = append(knownRelays, request.relay) found: + + knownRelays = append(knownRelays, request.relay) + evictionTimers[request.relay.uri.Host] = time.AfterFunc(evictionTime, evict(request.relay)) mut.Unlock() request.result <- result{nil, evictionTime}