Index: src/org/adblockplus/brazil/RequestHandler.java |
diff --git a/src/org/adblockplus/brazil/RequestHandler.java b/src/org/adblockplus/brazil/RequestHandler.java |
index 4c70a8adf75e0ea0105e0c3a1a0a27dca23e7669..e0007fb60d26f90f9d0689bb8307b2393858bac2 100644 |
--- a/src/org/adblockplus/brazil/RequestHandler.java |
+++ b/src/org/adblockplus/brazil/RequestHandler.java |
@@ -48,8 +48,8 @@ import android.util.Log; |
/** |
* The <code>RequestHandler</code> implements a proxy service optionally |
- * modifying output. |
- * The following configuration parameters are used to initialize this |
+ * modifying output. The |
+ * following configuration parameters are used to initialize this |
* <code>Handler</code>: |
* <dl class=props> |
* |
@@ -82,12 +82,13 @@ import android.util.Log; |
public class RequestHandler extends BaseRequestHandler |
{ |
+ private static final Pattern RE_HTTP = Pattern.compile("^https?:"); |
+ |
private AdblockPlus application; |
private String via; |
- private static Pattern RE_HTTP = Pattern.compile("^https?:"); |
@Override |
- public boolean init(Server server, String prefix) |
+ public boolean init(final Server server, final String prefix) |
{ |
super.init(server, prefix); |
@@ -98,7 +99,7 @@ public class RequestHandler extends BaseRequestHandler |
} |
@Override |
- public boolean respond(Request request) throws IOException |
+ public boolean respond(final Request request) throws IOException |
{ |
boolean block = false; |
@@ -106,7 +107,7 @@ public class RequestHandler extends BaseRequestHandler |
{ |
block = application.matches(request.url, request.query, request.getRequestHeader("referer"), request.getRequestHeader("accept")); |
} |
- catch (Exception e) |
+ catch (final Exception e) |
{ |
Log.e(prefix, "Filter error", e); |
} |
@@ -142,7 +143,7 @@ public class RequestHandler extends BaseRequestHandler |
* "Proxy-Connection" may be used (instead of just "Connection") |
* to keep alive a connection between a client and this proxy. |
*/ |
- String pc = request.headers.get("Proxy-Connection"); |
+ final String pc = request.headers.get("Proxy-Connection"); |
if (pc != null) |
{ |
request.connectionHeader = "Proxy-Connection"; |
@@ -151,7 +152,7 @@ public class RequestHandler extends BaseRequestHandler |
HttpRequest.removePointToPointHeaders(request.headers, false); |
- HttpRequest target = new HttpRequest(url); |
+ final HttpRequest target = new HttpRequest(url); |
try |
{ |
target.setMethod(request.method); |
@@ -168,7 +169,7 @@ public class RequestHandler extends BaseRequestHandler |
if (request.postData != null) |
{ |
- OutputStream out = target.getOutputStream(); |
+ final OutputStream out = target.getOutputStream(); |
out.write(request.postData); |
out.close(); |
} |
@@ -190,13 +191,13 @@ public class RequestHandler extends BaseRequestHandler |
{ |
request.responseHeaders.add("Via", target.status.substring(0, 8) + via); |
} |
- catch (StringIndexOutOfBoundsException e) |
+ catch (final StringIndexOutOfBoundsException e) |
{ |
request.responseHeaders.add("Via", via); |
} |
// Detect if we need to add ElemHide filters |
- String type = request.responseHeaders.get("Content-Type"); |
+ final String type = request.responseHeaders.get("Content-Type"); |
String[] selectors = null; |
if (type != null && type.toLowerCase().startsWith("text/html")) |
@@ -207,7 +208,7 @@ public class RequestHandler extends BaseRequestHandler |
{ |
reqHost = (new URL(request.url)).getHost(); |
} |
- catch (MalformedURLException e) |
+ catch (final MalformedURLException e) |
{ |
// We are transparent, it's not our deal if it's malformed. |
} |
@@ -217,7 +218,7 @@ public class RequestHandler extends BaseRequestHandler |
// If no filters are applicable just pass through the response |
if (selectors == null || target.getResponseCode() != 200) |
{ |
- int contentLength = target.getContentLength(); |
+ final int contentLength = target.getContentLength(); |
if (contentLength == 0) |
{ |
// we do not use request.sendResponse to avoid arbitrary |
@@ -232,7 +233,7 @@ public class RequestHandler extends BaseRequestHandler |
// Insert filters otherwise |
else |
{ |
- HttpInputStream his = target.getInputStream(); |
+ final HttpInputStream his = target.getInputStream(); |
int size = target.getContentLength(); |
if (size < 0) |
{ |
@@ -290,7 +291,7 @@ public class RequestHandler extends BaseRequestHandler |
Charset.forName(extractedCharsetName); |
charsetName = extractedCharsetName; |
} |
- catch (IllegalArgumentException e) |
+ catch (final IllegalArgumentException e) |
{ |
Log.e(prefix, "Unsupported site charset, falling back to " + charsetName, e); |
} |
@@ -299,10 +300,10 @@ public class RequestHandler extends BaseRequestHandler |
request.sendHeaders(-1, null, -1); |
- byte[] buf = new byte[Math.min(4096, size)]; |
+ final byte[] buf = new byte[Math.min(4096, size)]; |
boolean sent = selectors == null; |
- BoyerMoore matcher = new BoyerMoore("<html".getBytes()); |
+ final BoyerMoore matcher = new BoyerMoore("<html".getBytes()); |
while (size > 0) |
{ |
@@ -319,11 +320,11 @@ public class RequestHandler extends BaseRequestHandler |
// Search for <html> tag |
if (!sent && count > 0) |
{ |
- List<Integer> matches = matcher.match(buf, 0, count); |
+ final List<Integer> matches = matcher.match(buf, 0, count); |
if (!matches.isEmpty()) |
{ |
// Add filters right before match |
- int m = matches.get(0); |
+ final int m = matches.get(0); |
out.write(buf, 0, m); |
out.write("<style type=\"text/css\">\n".getBytes()); |
out.write(StringUtils.join(selectors, ",\r\n").getBytes(charsetName)); |
@@ -335,7 +336,7 @@ public class RequestHandler extends BaseRequestHandler |
} |
out.write(buf, 0, count); |
} |
- catch (IOException e) |
+ catch (final IOException e) |
{ |
break; |
} |
@@ -344,10 +345,12 @@ public class RequestHandler extends BaseRequestHandler |
// but we can not do it because underlying output stream is |
// used later in caller code. So we use this ugly hack: |
if (out instanceof ChunkedOutputStream) |
+ { |
((ChunkedOutputStream) out).writeFinalChunk(); |
+ } |
} |
} |
- catch (InterruptedIOException e) |
+ catch (final InterruptedIOException e) |
{ |
/* |
* Read timeout while reading from the remote side. We use a |
@@ -355,19 +358,19 @@ public class RequestHandler extends BaseRequestHandler |
*/ |
request.sendError(408, "Timeout / No response"); |
} |
- catch (EOFException e) |
+ catch (final EOFException e) |
{ |
request.sendError(500, "No response"); |
} |
- catch (UnknownHostException e) |
+ catch (final UnknownHostException e) |
{ |
request.sendError(500, "Unknown host"); |
} |
- catch (ConnectException e) |
+ catch (final ConnectException e) |
{ |
request.sendError(500, "Connection refused"); |
} |
- catch (IOException e) |
+ catch (final IOException e) |
{ |
/* |
* An IOException will happen if we can't communicate with the |