mirror of https://github.com/M66B/NetGuard.git
Prefer qnames known for app
This commit is contained in:
parent
e3b9568760
commit
7084e90261
|
@ -813,15 +813,18 @@ public class DatabaseHelper extends SQLiteOpenHelper {
|
|||
}
|
||||
}
|
||||
|
||||
public String getQName(String ip) {
|
||||
public String getQName(int uid, String ip) {
|
||||
lock.readLock().lock();
|
||||
try {
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
// There is a segmented index on resource
|
||||
String query = "SELECT qname";
|
||||
query += " FROM dns";
|
||||
query += " WHERE resource = '" + ip.replace("'", "''") + "'";
|
||||
query += " ORDER BY time DESC";
|
||||
// There is an index on access.daddr
|
||||
String query = "SELECT d.qname";
|
||||
query += " FROM dns AS d";
|
||||
query += " LEFT JOIN access AS a";
|
||||
query += " ON a.daddr = d.qname AND a.uid = " + uid;
|
||||
query += " WHERE d.resource = '" + ip.replace("'", "''") + "'";
|
||||
query += " ORDER BY CASE a.daddr WHEN NULL THEN 1 ELSE 0 END, d.time DESC";
|
||||
query += " LIMIT 1";
|
||||
return db.compileStatement(query).simpleQueryForString();
|
||||
} catch (SQLiteDoneException ignored) {
|
||||
|
|
|
@ -648,7 +648,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
DatabaseHelper dh = DatabaseHelper.getInstance(ServiceSinkhole.this);
|
||||
|
||||
// Get real name
|
||||
String dname = dh.getQName(packet.daddr);
|
||||
String dname = dh.getQName(packet.uid, packet.daddr);
|
||||
|
||||
// Traffic log
|
||||
if (log)
|
||||
|
@ -675,7 +675,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
boolean track_usage = prefs.getBoolean("track_usage", false);
|
||||
if (filter && log_app && track_usage) {
|
||||
DatabaseHelper dh = DatabaseHelper.getInstance(ServiceSinkhole.this);
|
||||
String dname = dh.getQName(usage.DAddr);
|
||||
String dname = dh.getQName(usage.Uid, usage.DAddr);
|
||||
Log.i(TAG, "Usage account " + usage + " dname=" + dname);
|
||||
dh.updateUsage(usage, dname);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue