From 7fcec095607ea9453f224f6caa0e280f526b0ac8 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Thu, 14 Sep 2006 05:07:34 +0000 Subject: [PATCH] r9753@danube: weasel | 2006-09-14 07:07:02 +0200 Remove duplicates from MyFamily svn:r8390 --- src/or/router.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/or/router.c b/src/or/router.c index 7c42ff77a0..5b7b01c130 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -804,6 +804,7 @@ router_rebuild_descriptor(int force) if (authdir_mode(options)) ri->is_valid = ri->is_named = 1; /* believe in yourself */ if (options->MyFamily) { + int i; smartlist_t *family; if (!warned_nonexistent_family) warned_nonexistent_family = smartlist_create(); @@ -840,6 +841,18 @@ router_rebuild_descriptor(int force) } tor_free(name); }); + + smartlist_sort_strings(ri->declared_family); + for (i = 1; i < smartlist_len(ri->declared_family); ++i) { + const char *a, *b; + a = smartlist_get(ri->declared_family, i-1); + b = smartlist_get(ri->declared_family, i); + if (!strcmp(a,b)) { + tor_free(smartlist_get(ri->declared_family, i)); + smartlist_del_keeporder(ri->declared_family, i--); + } + } + smartlist_free(family); } ri->cache_info.signed_descriptor_body = tor_malloc(8192);