OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
3 * Copyright (C) 2006-2014 Eyeo GmbH | 3 * Copyright (C) 2006-2014 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 11 matching lines...) Expand all Loading... |
22 import java.io.FilterOutputStream; | 22 import java.io.FilterOutputStream; |
23 import java.io.IOException; | 23 import java.io.IOException; |
24 import java.io.InterruptedIOException; | 24 import java.io.InterruptedIOException; |
25 import java.io.OutputStream; | 25 import java.io.OutputStream; |
26 import java.net.ConnectException; | 26 import java.net.ConnectException; |
27 import java.net.MalformedURLException; | 27 import java.net.MalformedURLException; |
28 import java.net.URL; | 28 import java.net.URL; |
29 import java.net.UnknownHostException; | 29 import java.net.UnknownHostException; |
30 import java.nio.charset.Charset; | 30 import java.nio.charset.Charset; |
31 import java.util.List; | 31 import java.util.List; |
| 32 import java.util.concurrent.atomic.AtomicLong; |
32 import java.util.regex.Matcher; | 33 import java.util.regex.Matcher; |
33 import java.util.regex.Pattern; | 34 import java.util.regex.Pattern; |
34 import java.util.zip.GZIPInputStream; | 35 import java.util.zip.GZIPInputStream; |
35 import java.util.zip.InflaterInputStream; | 36 import java.util.zip.InflaterInputStream; |
36 | 37 |
37 import org.adblockplus.ChunkedOutputStream; | 38 import org.adblockplus.ChunkedOutputStream; |
38 import org.adblockplus.android.AdblockPlus; | 39 import org.adblockplus.android.AdblockPlus; |
39 import org.apache.commons.lang.StringUtils; | 40 import org.apache.commons.lang.StringUtils; |
40 import org.literateprograms.BoyerMoore; | 41 import org.literateprograms.BoyerMoore; |
41 | 42 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 * See the description under {@link sunlabs.brazil.server.Handler#respond | 80 * See the description under {@link sunlabs.brazil.server.Handler#respond |
80 * respond} for a more detailed explanation. | 81 * respond} for a more detailed explanation. |
81 */ | 82 */ |
82 | 83 |
83 public class RequestHandler extends BaseRequestHandler | 84 public class RequestHandler extends BaseRequestHandler |
84 { | 85 { |
85 private AdblockPlus application; | 86 private AdblockPlus application; |
86 private String via; | 87 private String via; |
87 private static final Pattern RE_HTTP = Pattern.compile("^https?:"); | 88 private static final Pattern RE_HTTP = Pattern.compile("^https?:"); |
88 | 89 |
| 90 private static final AtomicLong BLOCKED_REQUESTS = new AtomicLong(); |
| 91 private static final AtomicLong UNBLOCKED_REQUESTS = new AtomicLong(); |
| 92 |
| 93 public static long getBlockedRequestCount() |
| 94 { |
| 95 return BLOCKED_REQUESTS.get(); |
| 96 } |
| 97 |
| 98 public static long getUnblockedRequestCount() |
| 99 { |
| 100 return UNBLOCKED_REQUESTS.get(); |
| 101 } |
| 102 |
89 @Override | 103 @Override |
90 public boolean init(final Server server, final String prefix) | 104 public boolean init(final Server server, final String prefix) |
91 { | 105 { |
92 super.init(server, prefix); | 106 super.init(server, prefix); |
93 | 107 |
94 application = AdblockPlus.getApplication(); | 108 application = AdblockPlus.getApplication(); |
95 via = " " + server.hostName + ":" + server.listen.getLocalPort() + " (" + se
rver.name + ")"; | 109 via = " " + server.hostName + ":" + server.listen.getLocalPort() + " (" + se
rver.name + ")"; |
96 | 110 |
97 return true; | 111 return true; |
98 } | 112 } |
(...skipping 10 matching lines...) Expand all Loading... |
109 catch (final Exception e) | 123 catch (final Exception e) |
110 { | 124 { |
111 Log.e(prefix, "Filter error", e); | 125 Log.e(prefix, "Filter error", e); |
112 } | 126 } |
113 | 127 |
114 request.log(Server.LOG_LOG, prefix, block + ": " + request.url); | 128 request.log(Server.LOG_LOG, prefix, block + ": " + request.url); |
115 | 129 |
116 int count = request.server.requestCount; | 130 int count = request.server.requestCount; |
117 if (shouldLogHeaders) | 131 if (shouldLogHeaders) |
118 { | 132 { |
| 133 // FIXME Don't log to "err" |
119 System.err.println(dumpHeaders(count, request, request.headers, true)); | 134 System.err.println(dumpHeaders(count, request, request.headers, true)); |
120 } | 135 } |
121 | 136 |
122 if (block) | 137 if (block) |
123 { | 138 { |
124 request.sendHeaders(204, null, 0); | 139 request.sendHeaders(204, null, 0); |
| 140 BLOCKED_REQUESTS.incrementAndGet(); |
125 return true; | 141 return true; |
126 } | 142 } |
127 | 143 |
| 144 UNBLOCKED_REQUESTS.incrementAndGet(); |
| 145 |
128 // Do not further process non-http requests | 146 // Do not further process non-http requests |
129 if (!RE_HTTP.matcher(request.url).find()) | 147 if (!RE_HTTP.matcher(request.url).find()) |
130 { | 148 { |
131 return false; | 149 return false; |
132 } | 150 } |
133 | 151 |
134 String url = request.url; | 152 String url = request.url; |
135 | 153 |
136 if ((request.query != null) && (request.query.length() > 0)) | 154 if ((request.query != null) && (request.query.length() > 0)) |
137 { | 155 { |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 request.sendError(500, msg); | 402 request.sendError(500, msg); |
385 Log.e(prefix, msg, e); | 403 Log.e(prefix, msg, e); |
386 } | 404 } |
387 finally | 405 finally |
388 { | 406 { |
389 target.close(); | 407 target.close(); |
390 } | 408 } |
391 return true; | 409 return true; |
392 } | 410 } |
393 } | 411 } |
OLD | NEW |