itdam-client: Remove duplicates from final slice in fetchDirlist. - tordam - A library for peer discovery inside the Tor network Err parazyd.org 70 hgit clone https://git.parazyd.org/tordam URL:https://git.parazyd.org/tordam parazyd.org 70 1Log /git/tordam/log.gph parazyd.org 70 1Files /git/tordam/files.gph parazyd.org 70 1Refs /git/tordam/refs.gph parazyd.org 70 1README /git/tordam/file/README.md.gph parazyd.org 70 1LICENSE /git/tordam/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit bbad7869cabc96604d8ababb595b21461d6e3f69 /git/tordam/commit/bbad7869cabc96604d8ababb595b21461d6e3f69.gph parazyd.org 70 1parent 90ec84166a4843ff854ca032abc5c4054679ef2c /git/tordam/commit/90ec84166a4843ff854ca032abc5c4054679ef2c.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Fri, 26 Oct 2018 17:56:32 +0200 Err parazyd.org 70 i Err parazyd.org 70 idam-client: Remove duplicates from final slice in fetchDirlist. Err parazyd.org 70 i Err parazyd.org 70 iThis avoids possible race conditions (confirmed). Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M cmd/dam-client/main.go | 11 +++++++++++ Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 11 insertions(+), 0 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/cmd/dam-client/main.go b/cmd/dam-client/main.go /git/tordam/file/cmd/dam-client/main.go.gph parazyd.org 70 it@@ -179,6 +179,17 @@ func fetchDirlist(locations []string) ([]string, error) { Err parazyd.org 70 i } Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i+ // Remove possible duplicats. Dupes can cause race conditions and are Err parazyd.org 70 i+ // redundant to the whole logic. Err parazyd.org 70 i+ encounter := map[string]bool{} Err parazyd.org 70 i+ for j := range dirSlice { Err parazyd.org 70 i+ encounter[dirSlice[j]] = true Err parazyd.org 70 i+ } Err parazyd.org 70 i+ dirSlice = []string{} Err parazyd.org 70 i+ for key := range encounter { Err parazyd.org 70 i+ dirSlice = append(dirSlice, key) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i if len(dirSlice) < 1 { Err parazyd.org 70 i log.Fatalln("Couldn't get any directories. Exiting.") Err parazyd.org 70 i } else if len(dirSlice) <= 6 { Err parazyd.org 70 .