*) Changing Proxy-Useragent string according to thread http://www.yacy-forum.de/viewtopic.php?p=8183#8183

A typical useragent string now e.g. looks like: 
   Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10; YaCy 0.401/00602; yacy.net) Gecko/20050716 Firefox/1.0.6

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@607 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
theli 2005-08-30 13:41:47 +00:00
parent bf14e6def5
commit 0dfa8b62e2
2 changed files with 29 additions and 4 deletions

View File

@ -116,7 +116,7 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt
private static htmlFilterTransformer transformer = null;
public static final String userAgent = "yacy (" + httpc.systemOST +") yacy.net";
public static final String userAgent = "yacy (" + httpc.systemOST +") yacy.net";
private File htRootPath = null;
private static boolean doAccessLogging = false;
@ -179,6 +179,11 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt
*/
private final StringBuffer logMessage = new StringBuffer();
/**
* Reusable {@link StringBuffer} to generate the useragent string
*/
private final StringBuffer userAgentStr = new StringBuffer();
// class methods
public httpdProxyHandler(serverSwitch sb) {
@ -351,7 +356,7 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt
// set another userAgent, if not yellowlisted
if ((yellowList != null) && (!(yellowList.contains(domain(hostlow))))) {
// change the User-Agent
requestHeader.put(httpHeader.USER_AGENT, userAgent);
requestHeader.put(httpHeader.USER_AGENT, generateUserAgent(requestHeader));
}
// decide wether to use a cache entry or connect to the network
@ -852,7 +857,7 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt
// set another userAgent, if not yellowlisted
if (!(yellowList.contains(domain(hostlow)))) {
// change the User-Agent
requestHeader.put(httpHeader.USER_AGENT, userAgent);
requestHeader.put(httpHeader.USER_AGENT, generateUserAgent(requestHeader));
}
// resolve yacy and yacyh domains
@ -930,7 +935,7 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt
// set another userAgent, if not yellowlisted
if (!(yellowList.contains(domain(host).toLowerCase()))) {
// change the User-Agent
requestHeader.put(httpHeader.USER_AGENT, userAgent);
requestHeader.put(httpHeader.USER_AGENT, generateUserAgent(requestHeader));
}
// resolve yacy and yacyh domains
@ -1169,6 +1174,25 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt
out.flush();
}
private String generateUserAgent(httpHeader requestHeaders) {
this.userAgentStr.setLength(0);
String browserUserAgent = (String) requestHeaders.get(httpHeader.USER_AGENT, userAgent);
int pos = browserUserAgent.lastIndexOf(')');
if (pos >= 0) {
this.userAgentStr
.append(browserUserAgent.substring(0,pos))
.append("; YaCy ")
.append(switchboard.getConfig("vString","0.1"))
.append("; yacy.net")
.append(browserUserAgent.substring(pos));
} else {
this.userAgentStr.append(browserUserAgent);
}
return this.userAgentStr.toString();
}
/**
* This function is used to generate a logging message according to the
* <a href="http://www.squid-cache.org/Doc/FAQ/FAQ-6.html">squid logging format</a>.<p>

View File

@ -236,6 +236,7 @@ public final class yacy {
}
sb.setConfig("version", Float.toString(version));
sb.setConfig("vString", combinedVersionString2PrettyString(Float.toString(version)));
sb.setConfig("vdate", vDATE);
sb.setConfig("applicationRoot", homePath);
sb.setConfig("startupTime", Long.toString(startup));