--- /dev/null
+#
+# Copyright (C) 2007-2016 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:=darkstat
+PKG_VERSION:=3.0.719
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Jean-Michel Lacroix <lacroix@lepine-lacroix.info>
+
+PKG_LICENSE:=GPL-2.0 BSD-ISC
+PKG_LICENSE_FILES:=COPYING.GPL LICENSE
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=http://unix4lyfe.org/darkstat
+PKG_MD5SUM:=963145de05cb21f4d93a9c244beeaea0
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/darkstat
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libpcap +zlib
+ TITLE:=Network bandwidth monitor
+ URL:=http://unix4lyfe.org/darkstat/
+endef
+
+define Package/darkstat/description
+darkstat is a packet sniffer that runs as a background process on a cable/DSL
+router, gathers all sorts of statistics about network usage, and serves them
+over HTTP.
+endef
+
+define Package/darkstat/conffiles
+/etc/config/darkstat
+endef
+
+CONFIGURE_ARGS += \
+ --disable-debug \
+ --with-chroot-dir=/var/empty
+
+TARGET_CFLAGS += -std=gnu99
+
+define Build/Compile
+ $(HOSTCC) $(PKG_BUILD_DIR)/static/c-ify.c \
+ -o $(PKG_BUILD_DIR)/c-ify
+ $(call Build/Compile/Default)
+endef
+
+define Package/darkstat/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/darkstat $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/darkstat.init $(1)/etc/init.d/darkstat
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_CONF) ./files/darkstat.config $(1)/etc/config/darkstat
+endef
+
+$(eval $(call BuildPackage,darkstat))
--- /dev/null
+config darkstat
+ option interface 'lan'
+ option syslog false
+ option verbose true
+ option no_daemon false
+ option no_promisc false
+ option no_dns false
+ option no_macs false
+ option no_lastseen false
+# option httpaddr '0.0.0.0'
+# option httpport '667'
+# option network_filter 'not (src net 192.168.1 and dst net 192.168.1)'
+# option network_netmask '192.168.1.0/255.255.255.0'
+ option local_only false
+# option hosts_max '1000'
+# option hosts_keep '500'
+# option ports_max '60'
+# option ports_keep '30'
+# option highest_port '65534'
+
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2007-2016 OpenWrt.org
+
+START=60
+APP=darkstat
+RUN_D=/var/empty
+PID_F=$RUN_D/darkstat.pid
+
+SYSLOG=""
+VERBOSE=""
+NODAEMON=""
+NOPROMISC=""
+NODNS=""
+NOMACS=""
+NOLASTSEEN=""
+LOCAL=""
+paramstr=""
+
+export_bool () {
+ local option="$1"
+ local section="$2"
+ local _keystr="$3"
+ local _loctmp
+ paramstr=""
+ config_get_bool _loctmp "$section" "$option"
+ if [ -n "$_loctmp" ]; then
+ if [ 1 -eq "$_loctmp" ]; then
+ paramstr="${_keystr} "
+ fi
+ fi
+}
+
+start() {
+ mkdir -p $RUN_D
+ . /lib/functions/network.sh
+ config_load darkstat
+ config_foreach start_darkstat darkstat
+}
+
+start_darkstat() {
+ local cfg="$1"
+ config_get interface $cfg interface
+ export_bool syslog $cfg "--syslog"
+ SYSLOG=$paramstr
+ export_bool verbose $cfg "--verbose"
+ VERBOSE=$paramstr
+ export_bool no_daemon $cfg "--no-daemon"
+ NODAEMON=$paramstr
+ export_bool no_promisc $cfg "--no-promisc"
+ NOPROMISC=$paramstr
+ export_bool no_dns $cfg "--no-dns"
+ NODNS=$paramstr
+ export_bool no_macs $cfg "--no-macs"
+ NOMACS=$paramstr
+ export_bool no_lastseen $cfg "--no-lastseen"
+ NOLASTSEEN=$paramstr
+ config_get httpaddr $cfg httpaddr
+ config_get httpport $cfg httpport
+ config_get network_filter $cfg network_filter
+ config_get network_netmask $cfg network_netmask
+ export_bool local_only $cfg "--local-only"
+ LOCAL=$paramstr
+ config_get hosts_max $cfg hosts_max
+ config_get hosts_keep $cfg hosts_keep
+ config_get ports_max $cfg ports_max
+ config_get ports_keep $cfg ports_keep
+ config_get highest_port $cfg highest_port
+
+
+ network_get_device ifname "$interface" && {
+ /usr/sbin/$APP -i "$ifname" \
+ ${SYSLOG} \
+ ${VERBOSE} \
+ ${NODAEMON} \
+ ${NOPROMISC} \
+ ${NODNS} \
+ ${NOMACS} \
+ ${NOLASTSEEN} \
+ ${httpaddr:+-b "$httpaddr"} \
+ ${httpport:+-p "$httpport"} \
+ ${network_filter:+-f "$network_filter"} \
+ ${network_netmask:+-l "$network_netmask"} \
+ ${LOCAL} \
+ ${hosts_max:+--hosts-max "$hosts_max"} \
+ ${hosts_keep:+--hosts-keep "$hosts_keep"} \
+ ${ports_max:+--ports-max "$ports_max"} \
+ ${ports_keep:+--ports-keep "$ports_keep"} \
+ ${highest_port:+--highest-port "$highest_port"} \
+ --chroot $RUN_D \
+ --pidfile $PID_F
+ }
+}
+
+stop() {
+ start-stop-daemon -K -n $APP -p $PID_F -s TERM
+ rm -f $PID_F
+}
--- /dev/null
+--- a/dns.c
++++ b/dns.c
+@@ -347,9 +347,6 @@ dns_main(void)
+
+ reply.addr = ip;
+ flags = NI_NAMEREQD;
+-# ifdef NI_IDN
+- flags |= NI_IDN;
+-# endif
+ switch (ip.family) {
+ case IPv4:
+ sin.sin_family = AF_INET;