ソースを参照

r8911@Kushana: nickm | 2006-09-22 12:24:52 -0400
Make exitlist only output each result line once.


svn:r8466

Nick Mathewson 17 年 前
コミット
da7f9d5a33
3 ファイル変更15 行追加5 行削除
  1. 2 0
      ChangeLog
  2. 12 4
      contrib/exitlist
  3. 1 1
      doc/TODO

+ 2 - 0
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

+ 12 - 4
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

+ 1 - 1
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).