From da7f9d5a337bf2596a0fbda2a9b668b08c41cee6 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 22 Sep 2006 20:20:35 +0000 Subject: [PATCH] r8911@Kushana: nickm | 2006-09-22 12:24:52 -0400 Make exitlist only output each result line once. svn:r8466 --- ChangeLog | 2 ++ contrib/exitlist | 16 ++++++++++++---- doc/TODO | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d35aa90d31..6912bfb788 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,8 @@ Changes in version 0.1.2.2-alpha - 2006-??-?? malloc(0) returns a pointer. - Fix a debug log message in eventdns to say "X resolved to Y" instead of "X resolved to X". + - Prevent the 'exitlist' script from printing the same result more + than once. o Documentation - Documented (and renamed) ServerDNSSearchDomains and diff --git a/contrib/exitlist b/contrib/exitlist index 2b7785fb75..de26dab89c 100755 --- a/contrib/exitlist +++ b/contrib/exitlist @@ -200,6 +200,13 @@ class Server: self.ip = ip self.policy = policy +def uniq_sort(lst): + d = {} + for item in lst: d[item] = 1 + lst = d.keys() + lst.sort() + return lst + def run(): servers = [] policy = [] @@ -237,12 +244,13 @@ def run(): else: printlist = accepters + ents = [] if VERBOSE: - for s in printlist: - print "%s\t%s"%(s.ip,s.name) + ents = uniq_sort([ "%s\t%s"%(s.ip,s.name) for s in printlist ]) else: - for s in printlist: - print s.ip + ents = uniq_sort([ s.ip for s in printlist ]) + for e in ents: + print e def _test(): import doctest, exitparse diff --git a/doc/TODO b/doc/TODO index e111773381..c921980d7d 100644 --- a/doc/TODO +++ b/doc/TODO @@ -165,7 +165,7 @@ N - provide no-cache no-index headers from the dirport? M - rewrite how libevent does select() on win32 so it's not so very slow. - Add overlapped IO -N - Exitlist should avoid outputting the same IP address twice. + o Exitlist should avoid outputting the same IP address twice. Nd- Have a mode that doesn't write to disk much, so we can run Tor on flash memory (e.g. Linksys routers or USB keys).