// sharedBlacklist_p.java // ----------------------- // part of the AnomicHTTPProxy // (C) by Michael Peter Christen; mc@anomic.de // first published on http://www.anomic.de // Frankfurt, Germany, 2004 // // This File is contributed by Alexander Schier // last change: 04.07.2004 // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Using this software in any meaning (reading, learning, copying, compiling, // running) means that you agree that the Author(s) is (are) not responsible // for cost, loss of data or any harm that may be caused directly or indirectly // by usage of this softare or this documentation. The usage of this software // is on your own risk. The installation and usage (starting/running) of this // software may allow other people or application to access your computer and // any attached devices and is highly dependent on the configuration of the // software which must be done by the user of the software; the author(s) is // (are) also not responsible for proper configuration and usage of the // software, even if provoked by documentation provided together with // the software. // // Any changes to this file according to the GPL as documented in the file // gpl.txt aside this file in the shipment you received can be done to the // lines that follows this copyright notice here, but changes must not be // done inside the copyright notive above. A re-distribution must contain // the intact and unchanged copyright notice. // Contributions and changes to the program code must be marked as such. // you must compile this file with // javac -classpath .:../Classes Blacklist_p.java // if the shell's current path is HTROOT import java.util.*; import java.io.*; import java.net.*; import de.anomic.tools.*; import de.anomic.server.*; import de.anomic.yacy.*; import de.anomic.net.*; import de.anomic.http.*; import de.anomic.plasma.*; public class sharedBlacklist_p { public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { // return variable that accumulates replacements serverObjects prop = new serverObjects(); plasmaSwitchboard switchboard = (plasmaSwitchboard) env; File listsPath = new File(switchboard.getRootPath(), env.getConfig("listsPath", "DATA/LISTS")); String filename = ""; String line = ""; String out = ""; String HTMLout = ""; HashSet Blacklist = new HashSet(); Vector otherBlacklist = new Vector(); String status = ""; int num = 0; int i = 0; //loop-var int count = 0; String IP = "127.0.0.1"; //should be replaced later String Port = "8080"; //aua! String Name = ""; String Hash = ""; String address = ""; if( post != null && post.containsKey("filename") ){ filename = (String)post.get("filename"); } try{ //Read the List BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(listsPath, filename)))); while((line = br.readLine()) != null){ if(! (line.startsWith("#") || line.equals("")) ){ Blacklist.add(line); out += line + serverCore.crlfString; } } br.close(); }catch(IOException e){} if( post != null && post.containsKey("hash") ){ //Step 1: retrieve the Items Hash = (String) post.get("hash"); status = "Proxy \"" + Name + "\" not found"; //will later be resetted yacySeed seed; if( yacyCore.seedDB != null ){ //no nullpointer error.. Enumeration e = yacyCore.seedDB.seedsConnected(true, false, null); while (e.hasMoreElements()) { seed = (yacySeed) e.nextElement(); if (seed != null && seed.hash.equals(Hash) ) { IP = seed.get("IP", "127.0.0.1"); Port = seed.get("Port", "8080"); Name = (String) seed.get("Name", "<" + IP + ":" + Port + ">"); status = ""; }else{ //status = "No Seed found"; //wrong? The Name not known? } } } //DEBUG //IP = "217.234.127.107"; //Port = "8080"; //Name = "RootServer"; //Make Adresse address = "http://" + IP + ":" + Port + "/yacy/list.html?col=black"; try { otherBlacklist = httpc.wget(new URL(address), 6000, null, null, switchboard.remoteProxyHost, switchboard.remoteProxyPort); //get List } catch (Exception e) {} //Make HTML-Optionlist with retrieved items for(i = 0; i <= (otherBlacklist.size() -1); i++){ String tmp = (String) otherBlacklist.get(i); if( !Blacklist.contains(tmp) && (!tmp.equals("")) ){ //newBlacklist.add(tmp); count++; HTMLout += "