package generell; // NOT USED ANY MORE: SEBASTIAN ENGER import java.net.*; import java.io.*; import java.util.logging.FileHandler; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; public class JProxy { private static int sourceLimit = 15; private static int strikeLimit = 20; private static String privateKey = "380971de720bf96f51d372441d4cacf3"; private static String token = "345Dgsdfg54534gdfghsgfhSDF8452wtHDFGHWG345tGD"; private static String cd = "v=1009;77.247.178.21:9923:8;77.247.178.74:9923:8;"; private static int[] ports = {3383, 3384}; private static Logger searchLog; public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; Socket socket = null; boolean listening = true; int port =9923; try { BufferedReader in = new BufferedReader(new FileReader("conf.jpr")); String zeile = null; while ((zeile = in.readLine()) != null) { //System.out.println(zeile); if(zeile.startsWith("sourceLimit")){ try{ sourceLimit=Integer.parseInt((zeile.substring(zeile.indexOf("=")+1,zeile.length())).trim()); }catch(NumberFormatException nfe){ System.out.println("sourceLimit set to standart value: "+ sourceLimit); } //System.out.println(sourceLimit); } if(zeile.startsWith("strikeLimit")){ try{ strikeLimit=Integer.parseInt((zeile.substring(zeile.indexOf("=")+1,zeile.length())).trim()); }catch(NumberFormatException nfe){ System.out.println("strikeLimit set to standart value: "+ strikeLimit); } //System.out.println(strikeLimit); } if(zeile.startsWith("token")){ token=zeile.substring(zeile.indexOf("=")+1,zeile.length()).trim(); //System.out.println(token); } if(zeile.startsWith("connectData")){ cd=zeile.substring(zeile.indexOf("=")+1,zeile.length()).trim(); //System.out.println(cd); } if(zeile.startsWith("ports")){ zeile=zeile.substring(zeile.indexOf("=")+1,zeile.length()).trim(); String tmp[]=zeile.split(" "); ports = stArraytoIntArray(tmp); //for(int i = 0; i < ports.length; i++){ //System.out.println(ports[i]); //} } } } catch (IOException e) { System.out.println("File not found take standart values!!"); } try { serverSocket = new ServerSocket(port); } catch (IOException e) { System.err.println("Could not listen on port: "+port); System.exit(-1); } searchLog = Logger.getLogger("searchLog"); FileHandler fh; try { // This block configure the logger with handler and formatter fh = new FileHandler("searchLog.log"); searchLog.addHandler(fh); //logger.setLevel(Level.ALL); SimpleFormatter formatter = new SimpleFormatter(); fh.setFormatter(formatter); // the following statement is used to log any messages } catch (SecurityException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } while (listening){ //System.out.println("Listen on port: "+ port); System.out.println("Listen on port: "+ port); socket = serverSocket.accept(); //System.out.println(socket.getInetAddress()); //System.out.println(serverSocket.getInetAddress()); //if(socket.getInetAddress().toString().endsWith("127.0.0.1")){ new ProxyServerThread(socket, sourceLimit, strikeLimit, privateKey, token, cd, ports, searchLog).start(); //}else{ //socket.close(); //} } serverSocket.close(); } public static int[] stArraytoIntArray(String[] sarray){ if (sarray != null) { int intarray[] = new int[sarray.length]; for (int i = 0; i < sarray.length; i++) { try{ intarray[i] = Integer.parseInt(sarray[i]); }catch(NumberFormatException nfe){ return ports; } } //System.out.println("Convert success!!"); return intarray; } return ports; } }