Clean while exporting, and handle exporting IP6

This commit is contained in:
Stuart Gathman
2013-06-16 03:39:47 +00:00
parent fca8d83370
commit af49a7a45e
+5 -3
View File
@@ -41,13 +41,15 @@ class Greylist(object):
self.dbp = shelve.open(dbname,'c',protocol=2)
self.lock = thread.allocate_lock()
def export_csv(self,fp):
def export_csv(self,fp,timeinc=0):
"Export records to csv."
import csv
dbp = self.dbp
w = csv.writer(fp)
now = time.time() + timeinc
for key, r in dbp.iteritems():
ip,sender,recipient = key.split(':')
if now > r.lastseen + self.greylist_retain: continue
ip,sender,recipient = key.rsplit(':',2)
w.writerow([ip,sender,recipient,r.firstseen,r.lastseen,r.cnt,r.umis])
def clean(self,timeinc=0):
@@ -112,7 +114,7 @@ class Greylist(object):
if __name__ == '__main__':
import sys
g = Greylist(sys.argv[1])
g = Greylist(sys.argv[1],5,24,36)
try:
g.export_csv(sys.stdout)
finally: g.close()