Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Feb 2013 10:32:04 -0600
From:      Mark Felder <feld@feld.me>
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        catone@cpan.org
Subject:   ports/175890: [PATCH] net-mgmt/p0f2: add rc script
Message-ID:  <E1U37um-000Aig-Is@feld.me>
Resent-Message-ID: <201302061640.r16Ge1EE064903@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         175890
>Category:       ports
>Synopsis:       [PATCH] net-mgmt/p0f2: add rc script
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Feb 06 16:40:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     feld
>Release:        FreeBSD 9.1-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD mwi1.coffeenet.org 9.1-RELEASE FreeBSD 9.1-RELEASE #6 r243808: Mon Dec  3 07:51:34
>Description:
Added rc script that is useful for maia/amavis users or anyone who needs p0f to start reliably on boot.

-Updated Makefile header format
-PORTDOCS converted to optionsng DOCS

Added file(s):
- files/p0f2.in

Port maintainer (catone@cpan.org) is cc'd.

Generated with FreeBSD Port Tools 0.99_6 (mode: change, diff: suffix)
>How-To-Repeat:
>Fix:

--- p0f2-2.0.8_1.patch begins here ---
diff -ruN --exclude=CVS ../p0f2.orig/Makefile ./Makefile
--- ../p0f2.orig/Makefile	2012-11-17 00:00:35.000000000 -0600
+++ ./Makefile	2013-02-06 10:24:42.149322886 -0600
@@ -1,12 +1,8 @@
-# New ports collection makefile for:	p0f2
-# Date created:				2012-07-30
-# Whom:					Denis Pokataev <catone@cpan.org>
-#
 # $FreeBSD: ports/net-mgmt/p0f2/Makefile,v 1.2 2012/11/17 06:00:35 svnexp Exp $
-#
 
 PORTNAME=	p0f2
 PORTVERSION=	2.0.8
+PORTREVISION=	1
 CATEGORIES=	net-mgmt security
 MASTER_SITES=	http://lcamtuf.coredump.cx/p0f/ \
 		http://farrokhi.net/distfiles/
@@ -18,12 +14,15 @@
 
 CONFLICTS=	p0f-3.*
 
+USE_RC_SUBR=	p0f2
 USE_GMAKE=	yes
 ALL_TARGET=	all p0fq tools
 PORTDOCS=	COPYING CREDITS ChangeLog KNOWN_BUGS README TODO win-memleak.txt
 MAN1=		p0f.1
 WRKSRC=		${WRKDIR}/p0f
 
+.include <bsd.port.options.mk>
+
 post-patch:
 .for f in config.h doc/README
 	@${REINPLACE_CMD} -e 's|/etc|${PREFIX}/etc|g' ${WRKSRC}/${f}
@@ -40,7 +39,7 @@
 .endfor
 	${INSTALL_MAN} ${WRKSRC}/${MAN1} ${MANPREFIX}/man/man1
 
-.if !defined(NOPORTDOCS)
+.if ${PORT_OPTIONS:MDOCS}
 	${MKDIR} ${DOCSDIR}
 .for ii in ${PORTDOCS}
 	${INSTALL_DATA} ${WRKSRC}/doc/${ii} ${DOCSDIR}
diff -ruN --exclude=CVS ../p0f2.orig/files/p0f2.in ./files/p0f2.in
--- ../p0f2.orig/files/p0f2.in	1969-12-31 18:00:00.000000000 -0600
+++ ./files/p0f2.in	2013-02-06 10:30:33.235340909 -0600
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: p0f2
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# p0f_enable (bool):	Set to NO by default.
+#
+# p0f_user:		User to drop privileges and change to
+#
+# p0f_int:		Network interface to listen on
+#
+# p0f_sock (path):	Path to socket used to communicate with p0f
+#
+# p0f_args:		Additonal options passed to the p0f daemon
+#
+# p0f_log (path):	File where p0f logs matches
+#
+# p0f_db (path):	Location of fingerprint db. 
+#			Defaults to %%PREFIX%%/p0f/p0f.fp
+
+. /etc/rc.subr
+
+name="p0f"
+rcvar=p0f_enable
+
+load_rc_config ${name}
+
+: ${p0f_enable:="NO"}
+: ${p0f_user:="root"}
+: ${p0f_sock:="/var/run/${name}.sock"}
+: ${p0f_log:="/var/log/p0f.log"}
+: ${p0f_db:="%%PREFIX%%/etc/p0f/p0f.fp"}
+
+stop_cmd="${name}_stopcmd"
+status_cmd="${name}_statuscmd"
+
+pidfile=/var/run/${name}.pid
+p0f_command="%%PREFIX%%/bin/${name} -i ${p0f_int} -u ${p0f_user} -Q ${p0f_sock} -o ${p0f_log} -f ${p0f_db} ${p0f_args}"
+command="/usr/sbin/daemon"
+command_args="-f -p ${pidfile} ${p0f_command}"
+
+p0f_statuscmd()
+{
+	if [ ! -e $pidfile ];
+	then
+		echo "pidfile does not exist. $name is not running?";
+		exit 1;
+	fi
+
+	if pgrep -F $pidfile >/dev/null;
+	then
+		echo "$name is running.";
+	else
+		echo "$name is not running.";
+		exit 1;
+	fi
+}
+
+p0f_stopcmd()
+{
+	if pgrep -F $pidfile >/dev/null; 
+	then
+		p0fpid=`cat $pidfile`;
+		kill $sig_stop ${p0fpid};
+		wait_for_pids ${p0fpid};
+	else
+		echo "$name is not running.";
+		exit 1;
+	fi
+}
+
+run_rc_command "$1"
--- p0f2-2.0.8_1.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1U37um-000Aig-Is>