package com.limegroup.gnutella.http;
import java.io.IOException;
import org.apache.http.Header;
import org.apache.http.HttpException;
import org.apache.http.HttpRequest;
import org.apache.http.protocol.HttpContext;
import org.limewire.http.HeaderInterceptor;
import com.limegroup.gnutella.uploader.HTTPUploader;
/**
* Processes the User-Agent headers from an {@link HttpRequest} and updates a
* corresponding {@link HTTPUploader}.
*/
public class UserAgentHeaderInterceptor implements HeaderInterceptor {
private HTTPUploader uploader;
public UserAgentHeaderInterceptor(HTTPUploader uploader) {
this.uploader = uploader;
}
public void process(Header header, HttpContext context)
throws HttpException, IOException {
if (!HTTPHeaderName.USER_AGENT.matches(header)) {
return;
}
String userAgent = header.getValue();
if (uploader != null) {
uploader.setUserAgent(userAgent);
}
}
public static boolean isFreeloader(String userAgent) {
if (userAgent == null) {
return false;
}
return ((userAgent.indexOf("Mozilla") != -1)
|| (userAgent.indexOf("Morpheus") != -1)
|| (userAgent.indexOf("DA") != -1)
|| (userAgent.indexOf("Download") != -1)
|| (userAgent.indexOf("FlashGet") != -1)
|| (userAgent.indexOf("GetRight") != -1)
|| (userAgent.indexOf("Go!Zilla") != -1)
|| (userAgent.indexOf("Inet") != -1)
|| (userAgent.indexOf("MIIxpc") != -1)
|| (userAgent.indexOf("MSProxy") != -1)
|| (userAgent.indexOf("Mass") != -1)
|| (userAgent.indexOf("MLdonkey") != -1)
|| (userAgent.indexOf("MyGetRight") != -1)
|| (userAgent.indexOf("NetAnts") != -1)
|| (userAgent.indexOf("NetZip") != -1)
|| (userAgent.indexOf("RealDownload") != -1)
|| (userAgent.indexOf("SmartDownload") != -1)
|| (userAgent.indexOf("Teleport") != -1)
|| (userAgent.indexOf("WebDownloader") != -1));
}
}