diff options
author | Nick Mathewson <nickm@torproject.org> | 2005-08-23 22:00:35 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2005-08-23 22:00:35 +0000 |
commit | 50452c32eccffc4a57e62ed72bb9a10609ed3982 (patch) | |
tree | 68b479133cb4a095362d276d56b01a7ed834f95c /src/or | |
parent | fed90c300ff5e8c74a30ce0965da645c8ebb4e01 (diff) | |
download | tor-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.c | 9 |
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; } |