From 1d1b8f699e67fa7023668770ff09d18f81f9fc43 Mon Sep 17 00:00:00 2001 From: theli Date: Fri, 30 Sep 2005 07:47:28 +0000 Subject: [PATCH] *) Extending proxy autoconfig to avoid problems with multiple local network cards git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@816 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/autoconfig.java | 52 +++++++++++++++++++++++++----------------- htroot/autoconfig.pac | 14 ++++-------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/htroot/autoconfig.java b/htroot/autoconfig.java index a5e98b7f6..c034c8002 100644 --- a/htroot/autoconfig.java +++ b/htroot/autoconfig.java @@ -44,29 +44,39 @@ //if the shell's current path is HTROOT import de.anomic.http.httpHeader; -import de.anomic.server.serverCore; +import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; public class autoconfig { - - /** - * Generates a proxy-autoconfig-file (application/x-ns-proxy-autoconfig) - * See: Proxy Auto-Config File Format - * @param header - * @param post - * @param env - * @return - */ - public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { - - serverObjects prop = new serverObjects(); - - prop.put("host", serverCore.publicLocalIP().getHostAddress()); - prop.put("port", env.getConfig("port", "8080")); - - // return rewrite properties - return prop; - } - + + /** + * Generates a proxy-autoconfig-file (application/x-ns-proxy-autoconfig) + * See: Proxy Auto-Config File Format + * @param header + * @param post + * @param env + * @return + */ + public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { + + serverObjects prop = new serverObjects(); + plasmaSwitchboard sb = (plasmaSwitchboard)env; + + // getting the http host header + String hostSocket = (String) header.get(httpHeader.CONNECTION_PROP_HOST); + + String host = hostSocket; + int port = 80, pos = hostSocket.indexOf(":"); + if (pos != -1) { + port = Integer.parseInt(hostSocket.substring(pos + 1)); + host = hostSocket.substring(0, pos); + } + + prop.put("host", host); + prop.put("port", Integer.toString(port)); + + return prop; + } + } diff --git a/htroot/autoconfig.pac b/htroot/autoconfig.pac index 72c26ab36..adb138b3d 100644 --- a/htroot/autoconfig.pac +++ b/htroot/autoconfig.pac @@ -1,14 +1,10 @@ function FindProxyForURL(url,host) { if ((isPlainHostName(host))|| - (host=="127.0.0.1")) - { - return "DIRECT"; - - } - else if (url.substring(0, 4) == "ftp:") { - return "DIRECT"; - } - else { + (host=="127.0.0.1")) { + return "DIRECT"; + } else if (url.substring(0, 4).toLowerCase() == "ftp:") { + return "DIRECT"; + } else { return "PROXY #[host]#:#[port]#, DIRECT"; } } \ No newline at end of file