| 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..9fa82f52312aaac17813fa15cca32a0b3f964854 100644 |
| --- a/src/org/adblockplus/brazil/RequestHandler.java |
| +++ b/src/org/adblockplus/brazil/RequestHandler.java |
| @@ -48,9 +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 |
| - * <code>Handler</code>: |
| + * modifying output. The following configuration parameters are used to |
| + * initialize this <code>Handler</code>: |
| * <dl class=props> |
| * |
| * <dt>prefix, suffix, glob, match |
| @@ -68,8 +67,8 @@ import android.util.Log; |
| * |
| * </dl> |
| * |
| - * A sample set of configuration parameters illustrating how to use this |
| - * handler follows: |
| + * A sample set of configuration parameters illustrating how to use this handler |
| + * follows: |
| * |
| * <pre> |
| * handler=adblock |
| @@ -82,39 +81,40 @@ import android.util.Log; |
| public class RequestHandler extends BaseRequestHandler |
| { |
| + private final static 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); |
| - application = AdblockPlus.getApplication(); |
| - via = " " + server.hostName + ":" + server.listen.getLocalPort() + " (" + server.name + ")"; |
| + this.application = AdblockPlus.getApplication(); |
| + this.via = " " + server.hostName + ":" + server.listen.getLocalPort() + " (" + server.name + ")"; |
| return true; |
| } |
| @Override |
| - public boolean respond(Request request) throws IOException |
| + public boolean respond(final Request request) throws IOException |
| { |
| boolean block = false; |
| try |
| { |
| - block = application.matches(request.url, request.query, request.getRequestHeader("referer"), request.getRequestHeader("accept")); |
| + block = this.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); |
| + Log.e(this.prefix, "Filter error", e); |
| } |
| - request.log(Server.LOG_LOG, prefix, block + ": " + request.url); |
| + request.log(Server.LOG_LOG, this.prefix, block + ": " + request.url); |
| int count = request.server.requestCount; |
| - if (shouldLogHeaders) |
| + if (this.shouldLogHeaders) |
| { |
| System.err.println(dumpHeaders(count, request, request.headers, true)); |
| } |
| @@ -139,10 +139,10 @@ 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. |
| + * "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,24 +151,24 @@ 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); |
| request.headers.copyTo(target.requestHeaders); |
| - if (proxyHost != null) |
| + if (this.proxyHost != null) |
| { |
| - target.setProxy(proxyHost, proxyPort); |
| - if (auth != null) |
| + target.setProxy(this.proxyHost, this.proxyPort); |
| + if (this.auth != null) |
| { |
| - target.requestHeaders.add("Proxy-Authorization", auth); |
| + target.requestHeaders.add("Proxy-Authorization", this.auth); |
| } |
| } |
| if (request.postData != null) |
| { |
| - OutputStream out = target.getOutputStream(); |
| + final OutputStream out = target.getOutputStream(); |
| out.write(request.postData); |
| out.close(); |
| } |
| @@ -178,7 +178,7 @@ public class RequestHandler extends BaseRequestHandler |
| } |
| target.connect(); |
| - if (shouldLogHeaders) |
| + if (this.shouldLogHeaders) |
| { |
| System.err.println(" " + target.status + "\n" + dumpHeaders(count, request, target.responseHeaders, false)); |
| } |
| @@ -188,15 +188,15 @@ public class RequestHandler extends BaseRequestHandler |
| target.responseHeaders.copyTo(request.responseHeaders); |
| try |
| { |
| - request.responseHeaders.add("Via", target.status.substring(0, 8) + via); |
| + request.responseHeaders.add("Via", target.status.substring(0, 8) + this.via); |
| } |
| - catch (StringIndexOutOfBoundsException e) |
| + catch (final StringIndexOutOfBoundsException e) |
| { |
| - request.responseHeaders.add("Via", via); |
| + request.responseHeaders.add("Via", this.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,17 +207,17 @@ 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. |
| } |
| - selectors = application.getSelectorsForDomain(reqHost); |
| + selectors = this.application.getSelectorsForDomain(reqHost); |
| } |
| // 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 +232,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,19 +290,19 @@ 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); |
| + Log.e(this.prefix, "Unsupported site charset, falling back to " + charsetName, e); |
| } |
| } |
| } |
| 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 +319,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 +335,7 @@ public class RequestHandler extends BaseRequestHandler |
| } |
| out.write(buf, 0, count); |
| } |
| - catch (IOException e) |
| + catch (final IOException e) |
| { |
| break; |
| } |
| @@ -344,36 +344,38 @@ 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(); |
| + { |
| + ((ChunkedOutputStream)out).writeFinalChunk(); |
| + } |
| } |
| } |
| - catch (InterruptedIOException e) |
| + catch (final InterruptedIOException e) |
| { |
| /* |
| - * Read timeout while reading from the remote side. We use a |
| - * read timeout in case the target never responds. |
| + * Read timeout while reading from the remote side. We use a read timeout |
| + * in case the target never responds. |
| */ |
| 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 |
| - * target or the client. Rather than attempting to discriminate, |
| - * just send an error message to the client, and let the send |
| - * fail if the client was the one that was in error. |
| + * An IOException will happen if we can't communicate with the target or |
| + * the client. Rather than attempting to discriminate, just send an error |
| + * message to the client, and let the send fail if the client was the one |
| + * that was in error. |
| */ |
| String msg = "Error from proxy"; |
| @@ -382,7 +384,7 @@ public class RequestHandler extends BaseRequestHandler |
| msg += ": " + e.getMessage(); |
| } |
| request.sendError(500, msg); |
| - Log.e(prefix, msg, e); |
| + Log.e(this.prefix, msg, e); |
| } |
| finally |
| { |