From 07142138dcb065897482ba8ca198fe7a4cc701d9 Mon Sep 17 00:00:00 2001
From: SpiritCroc <dev@spiritcroc.de>
Date: Tue, 28 Apr 2020 16:43:02 +0300
Subject: [PATCH] Toggle-able adblock hosts file [1/3]

Change-Id: I0f5ab2ec4a6f1855abd65f371a8960087db49994
---

diff --git a/Android.bp b/Android.bp
index e1cd41a..7efc48f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -256,6 +256,7 @@
     srcs: [
         "getaddrinfo.cpp",
         "gethnamaddr.cpp",
+        "gethostsfile.cpp",
         "sethostent.cpp",
         "res_cache.cpp",
         "res_comp.cpp",
diff --git a/getaddrinfo.cpp b/getaddrinfo.cpp
index 3f3166d..9c96fff 100644
--- a/getaddrinfo.cpp
+++ b/getaddrinfo.cpp
@@ -65,6 +65,8 @@
 #include "resolv_cache.h"
 #include "resolv_private.h"
 
+#include "gethostsfile.h"
+
 #define ANY 0
 
 using android::net::Experiments;
@@ -1464,7 +1466,7 @@
 
 static void _sethtent(FILE** hostf) {
     if (!*hostf)
-        *hostf = fopen(_PATH_HOSTS, "re");
+        *hostf = fopen(gethostsfile(), "re");
     else
         rewind(*hostf);
 }
@@ -1487,7 +1489,7 @@
     assert(name != NULL);
     assert(pai != NULL);
 
-    if (!*hostf && !(*hostf = fopen(_PATH_HOSTS, "re"))) return (NULL);
+    if (!*hostf && !(*hostf = fopen(gethostsfile(), "re"))) return (NULL);
 again:
     if (!(p = fgets(hostbuf, sizeof hostbuf, *hostf))) return (NULL);
     if (*p == '#') goto again;
diff --git a/gethostsfile.cpp b/gethostsfile.cpp
new file mode 100644
index 0000000..72faa47
--- /dev/null
+++ b/gethostsfile.cpp
@@ -0,0 +1,16 @@
+#include <string.h>
+#include <netdb.h>
+#include <sys/system_properties.h>
+
+#include "gethostsfile.h"
+
+const char* gethostsfile() {
+       char hosts_setting[128];
+       int prop_len = __system_property_get(AICP_HOSTS_SETTING_PROP,
+                                            hosts_setting);
+	if (prop_len > 0 && strncmp(hosts_setting, "true", 4) == 0) {
+		return AICP_PATH_ADBLOCK_HOSTS;
+	} else {
+		return _PATH_HOSTS;
+	}
+}
diff --git a/gethostsfile.h b/gethostsfile.h
new file mode 100644
index 0000000..214d257
--- /dev/null
+++ b/gethostsfile.h
@@ -0,0 +1,4 @@
+#define AICP_PATH_ADBLOCK_HOSTS "/system/etc/hosts.aicp_adblock"
+#define AICP_HOSTS_SETTING_PROP "persist.aicp.hosts_block"
+
+const char* gethostsfile();
diff --git a/sethostent.cpp b/sethostent.cpp
index 1bd8ab4..4c561dc 100644
--- a/sethostent.cpp
+++ b/sethostent.cpp
@@ -43,12 +43,14 @@
 #include "hostent.h"
 #include "resolv_private.h"
 
+#include "gethostsfile.h"
+
 constexpr int MAXALIASES = 35;
 constexpr int MAXADDRS = 35;
 
 static void sethostent_r(FILE** hf) {
     if (!*hf)
-        *hf = fopen(_PATH_HOSTS, "re");
+        *hf = fopen(gethostsfile(), "re");
     else
         rewind(*hf);
 }
