aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2005-08-23 22:00:35 +0000
committerNick Mathewson <nickm@torproject.org>2005-08-23 22:00:35 +0000
commit50452c32eccffc4a57e62ed72bb9a10609ed3982 (patch)
tree68b479133cb4a095362d276d56b01a7ed834f95c /src/or
parentfed90c300ff5e8c74a30ce0965da645c8ebb4e01 (diff)
downloadtor-50452c32eccffc4a57e62ed72bb9a10609ed3982.tar
tor-50452c32eccffc4a57e62ed72bb9a10609ed3982.tar.gz
fix bug 180: handle duplicate lines in approved-routers files.
svn:r4825
Diffstat (limited to 'src/or')
-rw-r--r--src/or/dirserv.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 1344bc08c..5a753af12 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -47,22 +47,25 @@ add_fingerprint_to_dir(const char *nickname, const char *fp, smartlist_t *list)
{
int i;
fingerprint_entry_t *ent;
+ char *fingerprint;
tor_assert(nickname);
tor_assert(fp);
tor_assert(list);
+ fingerprint = tor_strdup(fp);
+ tor_strstrip(fingerprint, " ");
+
for (i = 0; i < smartlist_len(list); ++i) {
ent = smartlist_get(list, i);
if (!strcasecmp(ent->nickname,nickname)) {
tor_free(ent->fingerprint);
- ent->fingerprint = tor_strdup(fp);
+ ent->fingerprint = fingerprint;
return 1;
}
}
ent = tor_malloc(sizeof(fingerprint_entry_t));
ent->nickname = tor_strdup(nickname);
- ent->fingerprint = tor_strdup(fp);
- tor_strstrip(ent->fingerprint, " ");
+ ent->fingerprint = fingerprint;
smartlist_add(list, ent);
return 0;
}