diff --git a/htroot/autoconfig.java b/htroot/autoconfig.java new file mode 100644 index 000000000..a738b3072 --- /dev/null +++ b/htroot/autoconfig.java @@ -0,0 +1,73 @@ +//autoconfig.pac +//----------------------- +//part of YaCy +//(C) by Michael Peter Christen; mc@anomic.de +//first published on http://www.anomic.de +//Frankfurt, Germany, 2004 +//last major change: 12.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 Status.java +//if the shell's current path is HTROOT + +import java.util.*; +import de.anomic.tools.*; +import de.anomic.server.*; +import de.anomic.yacy.*; +import de.anomic.http.*; + +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.publicIP().getHostAddress()); + prop.put("port", env.getConfig("port", "8080")); + + // return rewrite properties + return prop; + } + +} diff --git a/htroot/autoconfig.pac b/htroot/autoconfig.pac new file mode 100644 index 000000000..440aa3693 --- /dev/null +++ b/htroot/autoconfig.pac @@ -0,0 +1,10 @@ +function FindProxyForURL(url,host) { + if ((isPlainHostName(host))|| + (host=="127.0.0.1")) + { + return "DIRECT"; + + } else { + return "PROXY #[host]#:#[port]#"; + } +} \ No newline at end of file diff --git a/httpd.mime b/httpd.mime index 50b825a87..a638cd2cf 100644 --- a/httpd.mime +++ b/httpd.mime @@ -37,6 +37,7 @@ mov = video/quicktime mpe = video/mpeg mpeg = video/mpeg mpg = video/mpeg +pac = application/x-ns-proxy-autoconfig pdf = application/pdf php = application/x-httpd-php phtml = application/x-httpd-php diff --git a/source/de/anomic/http/httpdFileHandler.java b/source/de/anomic/http/httpdFileHandler.java index 32d1fdd55..4123ab756 100644 --- a/source/de/anomic/http/httpdFileHandler.java +++ b/source/de/anomic/http/httpdFileHandler.java @@ -80,7 +80,7 @@ import java.text.*; import java.lang.reflect.*; import de.anomic.server.*; -public class httpdFileHandler extends httpdAbstractHandler implements httpdHandler { +public final class httpdFileHandler extends httpdAbstractHandler implements httpdHandler { // class variables private Properties mimeTable = null; @@ -349,7 +349,11 @@ public class httpdFileHandler extends httpdAbstractHandler implements httpdHandl filedate = new Date(file.lastModified()); String mimeType = mimeTable.getProperty(conProp.getProperty("EXT",""),"text/html"); byte[] result; - if (path.endsWith("html") || path.endsWith("xml") || path.endsWith("rss") || path.endsWith("csv")) { + if (path.endsWith("html") || + path.endsWith("xml") || + path.endsWith("rss") || + path.endsWith("csv") || + path.endsWith("pac")) { rc = rewriteClassFile(file); if (rc != null) { // CGI-class: call the class to create a property for rewriting