Signed-off-by: Jean-Michel Lacroix <lacroix@lepine-lacroix.info> From the oldpackages. Updated to version 3.0.719, new config file to add more options Rewritten init file to take in account the new config file and removing a bug when stopping the daemon. Corrected license information in Makefile Signed-off-by: Jean-Michel Lacroix <lacroix@lepine-lacroix.info>lilik-openwrt-22.03
@ -0,0 +1,66 @@ | |||||
# | |||||
# 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)) |
@ -0,0 +1,20 @@ | |||||
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' | |||||
@ -0,0 +1,97 @@ | |||||
#!/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 | |||||
} |
@ -0,0 +1,12 @@ | |||||
--- 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; |