[or-cvs] [metrics-utils/master] Fix parsing of accept/reject lines with port ranges.

karsten at torproject.org karsten at torproject.org
Fri Nov 12 15:25:14 UTC 2010


Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Fri, 12 Nov 2010 16:24:26 +0100
Subject: Fix parsing of accept/reject lines with port ranges.
Commit: e54493cec2b95fbfd8fced5681513e529c07238b

Note that exonerator.py still has the same bug!
---
 exonerator/ChangeLog       |    8 ++++++++
 exonerator/ExoneraTor.java |   12 ++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)
 create mode 100644 exonerator/ChangeLog

diff --git a/exonerator/ChangeLog b/exonerator/ChangeLog
new file mode 100644
index 0000000..158f577
--- /dev/null
+++ b/exonerator/ChangeLog
@@ -0,0 +1,8 @@
+ExoneraTor change log:
+
+Changes in version 0.0.2 - 2010-11-??
+  - Fix parsing of accept/reject lines with port ranges.
+
+Changes in version 0.0.1 - 2010-09-22
+  - Initial release
+
diff --git a/exonerator/ExoneraTor.java b/exonerator/ExoneraTor.java
index eba3cca..f207a7b 100644
--- a/exonerator/ExoneraTor.java
+++ b/exonerator/ExoneraTor.java
@@ -291,8 +291,20 @@ public final class ExoneraTor {
                       !rulePort.equals("*"))
                     continue; // with no port given, we only consider
                               // reject :* rules as matching
+                  if (targetPort != null && !rulePort.equals("*") &&
+                      rulePort.contains("-")) {
+                    int fromPort = Integer.parseInt(
+                        rulePort.split("-")[0]);
+                    int toPort = Integer.parseInt(rulePort.split("-")[1]);
+                    int targetPortInt = Integer.parseInt(targetPort);
+                    if (targetPortInt < fromPort ||
+                        targetPortInt > toPort) {
+                      continue; // port not contained in interval
+                    }
+                  }
                   if (targetPort != null) {
                     if (!rulePort.equals("*") &&
+                        !rulePort.contains("-") &&
                         !targetPort.equals(rulePort))
                       continue; // ports do not match
                   }
-- 
1.7.1



More information about the tor-commits mailing list