Loading CHANGELOG.md +6 −0 Original line number Diff line number Diff line # Changes in version 6.2-1.16.0 - 2018-07-?? * Medium changes - Extend flag parameter to support comma-separated list of flags. # Changes in version 6.1-1.15.0 - 2018-07-16 * Medium changes Loading src/main/java/org/torproject/onionoo/server/RequestHandler.java +13 −8 Original line number Diff line number Diff line Loading @@ -78,10 +78,10 @@ public class RequestHandler { this.as = as; } private String flag; private String[] flags; public void setFlag(String flag) { this.flag = flag; public void setFlag(String[] flags) { this.flags = flags; } private String[] contact; Loading Loading @@ -177,7 +177,7 @@ public class RequestHandler { this.filterByFingerprint(); this.filterByCountryCode(); this.filterByAsNumber(); this.filterByFlag(); this.filterByFlags(); this.filterNodesByFirstSeenDays(); this.filterNodesByLastSeenDays(); this.filterByContact(); Loading Loading @@ -424,12 +424,17 @@ public class RequestHandler { this.filteredBridges.clear(); } private void filterByFlag() { if (this.flag == null) { /* Not filtering by relay flag. */ private void filterByFlags() { if (null == this.flags || 0 == this.flags.length) { /* Not filtering by relay flags. */ return; } String flag = this.flag.toLowerCase(); for (String flag : this.flags) { this.filterByFlag(flag); } } private void filterByFlag(String flag) { if (!this.nodeIndex.getRelaysByFlag().containsKey(flag)) { this.filteredRelays.clear(); } else { Loading src/main/java/org/torproject/onionoo/server/ResourceServlet.java +4 −4 Original line number Diff line number Diff line Loading @@ -249,7 +249,7 @@ public class ResourceServlet extends HttpServlet { rh.setAs(asNumberParameter); } if (parameterMap.containsKey("flag")) { String flagParameter = this.parseFlagParameter( String[] flagParameter = this.parseFlagParameter( parameterMap.get("flag")); if (flagParameter == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST); Loading Loading @@ -511,14 +511,14 @@ public class ResourceServlet extends HttpServlet { } private static Pattern flagPattern = Pattern.compile("^[a-zA-Z0-9]{1,20}$"); Pattern.compile("^[a-zA-Z0-9,]*$"); private String parseFlagParameter(String parameter) { private String[] parseFlagParameter(String parameter) { if (!flagPattern.matcher(parameter).matches()) { /* Flag contains illegal character(s). */ return null; } return parameter; return parameter.toLowerCase().split(","); } private static Pattern daysPattern = Pattern.compile("^[0-9-]{1,10}$"); Loading src/test/java/org/torproject/onionoo/server/ResourceServletTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -1204,6 +1204,32 @@ public class ResourceServletTest { "/summary?flag=Cool", 0, null, 0, null); } @Test(timeout = 100) public void testFlagRunningAndFast() { this.assertSummaryDocument( "/summary?flag=Running,Fast", 2, new String[] { "Ferrari458", "TimMayTribute" }, 0, null); } @Test(timeout = 100) public void testFlagRunningAndFastAndRunning() { this.assertSummaryDocument( "/summary?flag=Running,Fast,Running", 2, new String[] { "Ferrari458", "TimMayTribute" }, 0, null); } @Test(timeout = 100) public void testFlagRunningAndAwesome() { this.assertSummaryDocument( "/summary?flag=Running,Awesome", 0, null, 0, null); } @Test(timeout = 100) public void testFlagRunningAndValidUpperCase() { this.assertSummaryDocument( "/summary?flag=RUNNING,VALID", 3, null, 1, null); } @Test(timeout = 100) public void testFirstSeenDaysZeroToTwo() { this.assertSummaryDocument( Loading Loading
CHANGELOG.md +6 −0 Original line number Diff line number Diff line # Changes in version 6.2-1.16.0 - 2018-07-?? * Medium changes - Extend flag parameter to support comma-separated list of flags. # Changes in version 6.1-1.15.0 - 2018-07-16 * Medium changes Loading
src/main/java/org/torproject/onionoo/server/RequestHandler.java +13 −8 Original line number Diff line number Diff line Loading @@ -78,10 +78,10 @@ public class RequestHandler { this.as = as; } private String flag; private String[] flags; public void setFlag(String flag) { this.flag = flag; public void setFlag(String[] flags) { this.flags = flags; } private String[] contact; Loading Loading @@ -177,7 +177,7 @@ public class RequestHandler { this.filterByFingerprint(); this.filterByCountryCode(); this.filterByAsNumber(); this.filterByFlag(); this.filterByFlags(); this.filterNodesByFirstSeenDays(); this.filterNodesByLastSeenDays(); this.filterByContact(); Loading Loading @@ -424,12 +424,17 @@ public class RequestHandler { this.filteredBridges.clear(); } private void filterByFlag() { if (this.flag == null) { /* Not filtering by relay flag. */ private void filterByFlags() { if (null == this.flags || 0 == this.flags.length) { /* Not filtering by relay flags. */ return; } String flag = this.flag.toLowerCase(); for (String flag : this.flags) { this.filterByFlag(flag); } } private void filterByFlag(String flag) { if (!this.nodeIndex.getRelaysByFlag().containsKey(flag)) { this.filteredRelays.clear(); } else { Loading
src/main/java/org/torproject/onionoo/server/ResourceServlet.java +4 −4 Original line number Diff line number Diff line Loading @@ -249,7 +249,7 @@ public class ResourceServlet extends HttpServlet { rh.setAs(asNumberParameter); } if (parameterMap.containsKey("flag")) { String flagParameter = this.parseFlagParameter( String[] flagParameter = this.parseFlagParameter( parameterMap.get("flag")); if (flagParameter == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST); Loading Loading @@ -511,14 +511,14 @@ public class ResourceServlet extends HttpServlet { } private static Pattern flagPattern = Pattern.compile("^[a-zA-Z0-9]{1,20}$"); Pattern.compile("^[a-zA-Z0-9,]*$"); private String parseFlagParameter(String parameter) { private String[] parseFlagParameter(String parameter) { if (!flagPattern.matcher(parameter).matches()) { /* Flag contains illegal character(s). */ return null; } return parameter; return parameter.toLowerCase().split(","); } private static Pattern daysPattern = Pattern.compile("^[0-9-]{1,10}$"); Loading
src/test/java/org/torproject/onionoo/server/ResourceServletTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -1204,6 +1204,32 @@ public class ResourceServletTest { "/summary?flag=Cool", 0, null, 0, null); } @Test(timeout = 100) public void testFlagRunningAndFast() { this.assertSummaryDocument( "/summary?flag=Running,Fast", 2, new String[] { "Ferrari458", "TimMayTribute" }, 0, null); } @Test(timeout = 100) public void testFlagRunningAndFastAndRunning() { this.assertSummaryDocument( "/summary?flag=Running,Fast,Running", 2, new String[] { "Ferrari458", "TimMayTribute" }, 0, null); } @Test(timeout = 100) public void testFlagRunningAndAwesome() { this.assertSummaryDocument( "/summary?flag=Running,Awesome", 0, null, 0, null); } @Test(timeout = 100) public void testFlagRunningAndValidUpperCase() { this.assertSummaryDocument( "/summary?flag=RUNNING,VALID", 3, null, 1, null); } @Test(timeout = 100) public void testFirstSeenDaysZeroToTwo() { this.assertSummaryDocument( Loading