add list of domains serving advertising
authorMatteo Croce <matteo@openwrt.org>
Thu, 2 Jul 2015 19:58:16 +0000 (21:58 +0200)
committerMatteo Croce <matteo@openwrt.org>
Fri, 3 Jul 2015 10:21:03 +0000 (12:21 +0200)
Add a script to download a list of domains which serves ads.
This list can be used to block these servers in the DNS server.

utils/banhosts/Makefile [new file with mode: 0644]
utils/banhosts/files/updatebanhost [new file with mode: 0644]

diff --git a/utils/banhosts/Makefile b/utils/banhosts/Makefile
new file mode 100644 (file)
index 0000000..0087a6f
--- /dev/null
@@ -0,0 +1,40 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=banhostlist
+PKG_VERSION:=1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_MAINTAINER:=Matteo Croce <matteo@openwrt.org>
+PKG_LICENCE:=GPL-2.0
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/banhostlist
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=List of advertising domains
+  URL:=http://winhelp2002.mvps.org/
+endef
+
+define Package/banhostlist/description
+List of domains serving advertising and malicious content to easily block them
+endef
+
+
+define Build/Compile/Default
+endef
+
+define Package/banhostlist/install
+       $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
+       $(INSTALL_BIN) ./files/updatebanhost $(1)/etc/hotplug.d/iface/80-banhosts
+endef
+
+$(eval $(call BuildPackage,banhostlist))
diff --git a/utils/banhosts/files/updatebanhost b/utils/banhosts/files/updatebanhost
new file mode 100644 (file)
index 0000000..a00d9cb
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+file=/tmp/banhost
+
+gethosts() {
+       logger -t "banhost[$$]" "Update $file"
+       wget -qO- http://winhelp2002.mvps.org/hosts.txt |awk 'BEGIN{printf "0.0.0.0"}/^0\.0\.0\.0/{printf " "$2}END{exit(!FNR)}' >$file || exit 1
+       echo -n $time >$file.time
+       exec killall -HUP dnsmasq
+}
+
+if [ "$ACTION" = ifup -a "$INTERFACE" = wan ]; then
+       read time </proc/uptime
+       time=${time%%.*}
+
+       [ -f $file -a -f $file.time ] || gethosts
+       read oldtime <$file.time
+       [ $((time - oldtime)) -lt 604800 ] || gethosts
+fi