Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 May 2015 13:24:36 +0000 (UTC)
From:      Mark Felder <feld@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r385777 - in head/net/vnstat: . files
Message-ID:  <201505081324.t48DOa7M065668@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: feld
Date: Fri May  8 13:24:35 2015
New Revision: 385777
URL: https://svnweb.freebsd.org/changeset/ports/385777

Log:
  Improve configuration and setup of vnstat through the rc script
  
  PR:		199133

Modified:
  head/net/vnstat/Makefile
  head/net/vnstat/files/pkg-message.in
  head/net/vnstat/files/vnstat.in

Modified: head/net/vnstat/Makefile
==============================================================================
--- head/net/vnstat/Makefile	Fri May  8 13:05:29 2015	(r385776)
+++ head/net/vnstat/Makefile	Fri May  8 13:24:35 2015	(r385777)
@@ -3,6 +3,7 @@
 
 PORTNAME=	vnstat
 PORTVERSION=	1.12
+PORTREVISION=	1
 CATEGORIES=	net
 MASTER_SITES=	http://humdi.net/vnstat/ \
 		http://mirror.mcx2.org/

Modified: head/net/vnstat/files/pkg-message.in
==============================================================================
--- head/net/vnstat/files/pkg-message.in	Fri May  8 13:05:29 2015	(r385776)
+++ head/net/vnstat/files/pkg-message.in	Fri May  8 13:24:35 2015	(r385777)
@@ -1,7 +1,14 @@
 ###########################################################################
 vnstat has been installed.
 
-A Sample configuration file has be installed in %%PREFIX%%/etc/
+A sample configuration file has been installed in %%PREFIX%%/etc/
+Please add your default network interface in the 'Interface' line there
+before starting vnstat service.
+You can add any number of additional interfaces either in
+vnstat_additional_ifaces variable in /etc/rc.conf, or with this command:
+su -m %%USERS%% -c "%%PREFIX%%/bin/vnstat --create --iface <your interface>"
+and restart vnstat service:
+service vnstat restart
 
 For more information about vnStat use "man vnstat" or visit:
 http://humdi.net/vnstat/

Modified: head/net/vnstat/files/vnstat.in
==============================================================================
--- head/net/vnstat/files/vnstat.in	Fri May  8 13:05:29 2015	(r385776)
+++ head/net/vnstat/files/vnstat.in	Fri May  8 13:24:35 2015	(r385777)
@@ -9,6 +9,7 @@
 # Add the following line to /etc/rc.conf to enable vnstat:
 #
 # vnstat_enable="YES"
+# vnstat_additional_ifaces="em1"
 
 . /etc/rc.subr
 
@@ -26,11 +27,23 @@ load_rc_config $name
 command="%%PREFIX%%/sbin/vnstatd"
 command_args="-p ${vnstat_pidfile} --config ${vnstat_config}"
 pidfile="${vnstat_pidfile}"
+user_cmd="%%PREFIX%%/bin/vnstat"
 
 start_precmd=vnstat_startprecmd
 
+create_iface_database()
+{
+	local iface="$1"
+	local descr="$2"
+	su -m ${vnstat_user} -c "${user_cmd} --create --iface $iface" >/dev/null 2>&1 ||
+	  ! echo "$name: Failed to create database for the $descr interface $iface" || return 1
+	echo "$name: Created the database for the $descr interface $iface"
+}
+
 vnstat_startprecmd()
 {
+	local dbdir iface
+
 	if [ ! -e ${pidfile%/*} ]; then
 		install -d -o ${vnstat_user} -g ${vnstat_group} ${pidfile%/*};
 	fi
@@ -40,6 +53,18 @@ vnstat_startprecmd()
 		install -d -o ${vnstat_user} -g ${vnstat_group} ${dbdir};
 	fi
 
+	iface=$(grep "^Interface" ${vnstat_config} | head -1 | awk 'BEGIN{FS="\042"}{print $2}')
+	if [ -n "${iface}" -a ! -f ${dbdir}/${iface} ]; then
+		create_iface_database $iface "default" || return 1
+	fi
+	if [ -n "${vnstat_additional_ifaces}" ]; then
+		for iface in ${vnstat_additional_ifaces}; do 
+			if [ ! -f ${dbdir}/${iface} ]; then
+				create_iface_database $iface "additional" || return 1
+			fi
+		done
+	fi
+
 	if [ ! -d "/var/run/vnstat" ]; then
 		install -d -o ${vnstat_user} -g ${vnstat_group} /var/run/vnstat;
 	fi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505081324.t48DOa7M065668>