From c83b15612000a6ae598418e358229a22258f1200 Mon Sep 17 00:00:00 2001 From: karlchenofhell Date: Sun, 28 Jan 2007 12:25:53 +0000 Subject: [PATCH] - fix for use of Java 1.5 methods (eclipse is crap) - added two more test-cases for blacklist cleaner git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3288 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/BlacklistCleaner_p.html | 4 +++- htroot/BlacklistCleaner_p.java | 35 +++++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/htroot/BlacklistCleaner_p.html b/htroot/BlacklistCleaner_p.html index bc137e0c1..7a2acc5c2 100644 --- a/htroot/BlacklistCleaner_p.html +++ b/htroot/BlacklistCleaner_p.html @@ -35,7 +35,9 @@
#{entries}#
- +
diff --git a/htroot/BlacklistCleaner_p.java b/htroot/BlacklistCleaner_p.java index 941841e92..99617dedd 100644 --- a/htroot/BlacklistCleaner_p.java +++ b/htroot/BlacklistCleaner_p.java @@ -73,6 +73,8 @@ public class BlacklistCleaner_p { private static final int ERR_TWO_WILDCARDS_IN_HOST = 0; private static final int ERR_SUBDOMAIN_XOR_WILDCARD = 1; private static final int ERR_PATH_REGEX = 2; + private static final int ERR_WILDCARD_BEGIN_OR_END = 3; + private static final int ERR_HOST_WRONG_CHARS = 4; public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { serverObjects prop = new serverObjects(); @@ -123,7 +125,7 @@ public class BlacklistCleaner_p { String s; while (it.hasNext()) { s = (String)it.next(); - prop.put(RESULTS + DISABLED + ENTRIES + i + "_error", ((Integer)ies.get(s)).intValue()); + prop.put(RESULTS + DISABLED + ENTRIES + i + "_error", ((Integer)ies.get(s)).longValue()); prop.putSafeXML(RESULTS + DISABLED + ENTRIES + i + "_entry", s); i++; } @@ -177,18 +179,29 @@ public class BlacklistCleaner_p { } int i = host.indexOf("*"); + + // check whether host begins illegally + if (!host.matches("([A-Za-z0-9_-]+|\\*)(\\.([A-Za-z0-9_-]+|\\*))*")) { + if (i == 0 && host.length() > 1 && host.charAt(1) != '.') { + r.put(s, new Integer(ERR_SUBDOMAIN_XOR_WILDCARD)); + continue; + } else { + r.put(s, new Integer(ERR_HOST_WRONG_CHARS)); + continue; + } + } + // in host-part only full sub-domains may be wildcards if (host.length() > 0 && i > -1) { - if (host.length() > i + 1) - if (host.charAt(i + 1) != '.') { - r.put(s, Integer.valueOf(ERR_SUBDOMAIN_XOR_WILDCARD)); - continue; - } - if (i > 0) - if (host.charAt(i - 1) != '.') { - r.put(s, Integer.valueOf(ERR_SUBDOMAIN_XOR_WILDCARD)); - continue; - } + if (!(i == 0 || i == host.length() - 1)) { + r.put(s, new Integer(ERR_WILDCARD_BEGIN_OR_END)); + continue; + } + + if (i == host.length() - 1 && host.length() > 1 && host.charAt(i - 1) != '.') { + r.put(s, new Integer(ERR_SUBDOMAIN_XOR_WILDCARD)); + continue; + } } // check for double-occurences of "*" in host