+def parse_leave_reason(fname):
+ """ Parse a dak log file fname for ACCEPT/REJECT reason from process-new.
+
+ Return a dictionary {filename: reason}"""
+
+ reason_re = re.compile(".+\|process-new\|.+\|NEW (ACCEPT|REJECT): (\S+)")
+
+ try:
+ f = open(fname)
+ except IOError, e:
+ sys.stderr.write("Can't open %s: %s\n" % (fname, e))
+ return {}
+
+ res = {}
+ for l in f.readlines():
+ m = reason_re.search(l)
+ if m:
+ res[m.group(2)] = m.group(1)
+
+ f.close()
+ return res
+