OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Michael van Elst Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src openpkg-web Date: 18-Jul-2003 12:34:36 Branch: HEAD Handle: 2003071811343501 Added files: openpkg-src/portsentry portsentry.patch Modified files: openpkg-src/portsentry portsentry.spec rc.portsentry openpkg-web news.txt Log: patch daemon to maintain pidfile, add %status section Summary: Revision Changes Path 1.1 +98 -0 openpkg-src/portsentry/portsentry.patch 1.35 +3 -1 openpkg-src/portsentry/portsentry.spec 1.11 +25 -6 openpkg-src/portsentry/rc.portsentry 1.5637 +1 -0 openpkg-web/news.txt ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/portsentry/portsentry.patch ============================================================================ $ cvs diff -u -r0 -r1.1 portsentry.patch --- /dev/null 2003-07-18 12:34:36.000000000 +0200 +++ portsentry.patch 2003-07-18 12:34:36.000000000 +0200 @@ -0,0 +1,98 @@ +--- portsentry.c.dist 2003-07-18 12:06:57.000000000 +0200 ++++ portsentry.c 2003-07-18 12:14:26.000000000 +0200 +@@ -50,7 +50,7 @@ + int + main (int argc, char *argv[]) + { +- if (argc != 2) ++ if (argc != 2 && argc != 3) + { + Usage (); + Exit (ERROR); +@@ -100,7 +100,7 @@ + Exit (ERROR); + } + #ifndef NODAEMON +- else if (DaemonSeed () == ERROR) ++ else if (DaemonSeed (argc > 2 ? argv[2] : NULL) == ERROR) + { + Log ("adminalert: ERROR: could not go into daemon mode. Shutting down.\n"); + printf ("ERROR: could not go into daemon mode. Shutting down.\n"); +@@ -1594,10 +1594,10 @@ + printf ("Licensing restrictions apply. Please see documentation\n"); + printf ("Version: %s\n\n", VERSION); + #ifdef SUPPORT_STEALTH +- printf ("usage: portsentry [-tcp -udp -stcp -atcp -sudp -audp]\n\n"); ++ printf ("usage: portsentry [-tcp -udp -stcp -atcp -sudp -audp] [pidfile]\n\n"); + #else + printf ("Stealth scan detection not supported on this platform\n"); +- printf ("usage: portsentry [-tcp -udp]\n\n"); ++ printf ("usage: portsentry [-tcp -udp] [pidfile]\n\n"); + #endif + printf ("*** PLEASE READ THE DOCS BEFORE USING *** \n\n"); + } +--- portsentry_io.h.dist 2003-07-18 12:07:02.000000000 +0200 ++++ portsentry_io.h 2003-07-18 12:14:38.000000000 +0200 +@@ -31,7 +31,7 @@ + void Log (char *,...); + void Exit (int); + void Start (void); +-int DaemonSeed (void); ++int DaemonSeed (char *pidfile); + int NeverBlock (char *, char *); + int CheckConfig (void); + int OpenTCPSocket (void); +--- portsentry_io.c.dist 2003-07-18 12:07:11.000000000 +0200 ++++ portsentry_io.c 2003-07-18 12:32:39.000000000 +0200 +@@ -30,6 +30,8 @@ + #include "portsentry_io.h" + #include "portsentry_util.h" + ++static char *rmpidfile; ++ + /* Main logging function to surrogate syslog */ + void + Log (char *logentry, ...) +@@ -54,6 +56,14 @@ + { + Log ("securityalert: Psionic PortSentry is shutting down\n"); + Log ("adminalert: Psionic PortSentry is shutting down\n"); ++ ++ if (rmpidfile) { ++ Log ("adminalert: Psionic PortSentry removes '%s'\n", rmpidfile); ++ if (unlink(rmpidfile)) ++ Log ("adminalert: Psionic PortSentry cannot remove pidfile (%s)\n", ++ strerror(errno)); ++ } ++ + exit (status); + } + +@@ -72,9 +82,10 @@ + /* The daemonizing code copied from Advanced Programming */ + /* in the UNIX Environment by W. Richard Stevens with minor changes */ + int +-DaemonSeed (void) ++DaemonSeed (char *pidfile) + { + int childpid; ++ FILE *f; + + signal (SIGALRM, SIG_IGN); + signal (SIGHUP, SIG_IGN); +@@ -89,6 +100,15 @@ + else if (childpid > 0) + exit (0); + ++ if (pidfile != NULL) { ++ f = fopen(pidfile,"w"); ++ if (f != NULL) { ++ fprintf(f,"%d",getpid()); ++ fclose(f); ++ rmpidfile = pidfile; ++ } ++ } ++ + setsid (); + chdir ("/"); + umask (077); @@ . patch -p0 <<'@@ .' Index: openpkg-src/portsentry/portsentry.spec ============================================================================ $ cvs diff -u -r1.34 -r1.35 portsentry.spec --- openpkg-src/portsentry/portsentry.spec 17 Jul 2003 15:33:04 -0000 1.34 +++ openpkg-src/portsentry/portsentry.spec 18 Jul 2003 10:34:36 -0000 1.35 @@ -33,7 +33,7 @@ Group: Security License: Open Source Version: 1.1 -Release: 20030717 +Release: 20030718 # package options %option with_fsl yes @@ -42,6 +42,7 @@ Source0: http://www.psionic.com/downloads/portsentry-%{version}.tar.gz Source1: rc.portsentry Source2: fsl.portsentry +Patch0: portsentry.patch # build information Prefix: %{l_prefix} @@ -62,6 +63,7 @@ %prep %setup -q + %patch -p0 %{l_shtool} subst \ -e 's;portsentry_util.c$;portsentry_util.c $(LIBS);' \ Makefile @@ . patch -p0 <<'@@ .' Index: openpkg-src/portsentry/rc.portsentry ============================================================================ $ cvs diff -u -r1.10 -r1.11 rc.portsentry --- openpkg-src/portsentry/rc.portsentry 17 Jul 2003 21:34:58 -0000 1.10 +++ openpkg-src/portsentry/rc.portsentry 18 Jul 2003 10:34:36 -0000 1.11 @@ -11,21 +11,40 @@ portsentry_log_minsize="1M" portsentry_log_complevel="9" +%common + portsentry_tcp_pidfile="@l_prefix@/var/portsentry/tcp.pid" + portsentry_udp_pidfile="@l_prefix@/var/portsentry/udp.pid" + portsentry_signal () { + [ -f $portsentry_tcp_pidfile ] \ + && kill -$1 `cat $portsentry_tcp_pidfile` \ + && [ -f $portsentry_udp_pidfile ] \ + && kill -$1 `cat $portsentry_udp_pidfile` + } + +%status -p 200 -u @l_susr@ -o + portsentry_usable="unknown" + portsentry_active="no" + opService portsentry enable yes && \ + portsentry_signal 0 && portsentry_active="yes" + echo "portsentry_enable=\"$portsentry_enable\"" + echo "portsentry_usable=\"$portsentry_usable\"" + echo "portsentry_active=\"$portsentry_active\"" + %start -p 200 -u @l_susr@ opService portsentry enable yes || exit 0 - @l_prefix@/sbin/portsentry -tcp - @l_prefix@/sbin/portsentry -udp + @l_prefix@/sbin/portsentry -tcp $portsentry_tcp_pidfile + @l_prefix@/sbin/portsentry -udp $portsentry_udp_pidfile %stop -p 200 -u @l_susr@ opService portsentry enable yes || exit 0 - rpmtool signal TERM portsentry + portsentry_signal TERM %restart -u @l_susr@ opService portsentry enable yes || exit 0 - rpmtool signal TERM portsentry + portsentry_signal TERM sleep 2 - @l_prefix@/sbin/portsentry -tcp - @l_prefix@/sbin/portsentry -udp + @l_prefix@/sbin/portsentry -tcp $portsentry_tcp_pidfile + @l_prefix@/sbin/portsentry -udp $portsentry_udp_pidfile %daily -u @l_susr@ opService portsentry enable yes || exit 0 @@ . patch -p0 <<'@@ .' Index: openpkg-web/news.txt ============================================================================ $ cvs diff -u -r1.5636 -r1.5637 news.txt --- openpkg-web/news.txt 18 Jul 2003 09:41:01 -0000 1.5636 +++ openpkg-web/news.txt 18 Jul 2003 10:34:35 -0000 1.5637 @@ -1,3 +1,4 @@ +18-Jul-2003: Upgraded package: P<portsentry-1.1-20030718> 18-Jul-2003: Upgraded package: P<ircd-2.10.3p3-20030718> 18-Jul-2003: Upgraded package: P<imapd-2.1.14-20030718> 18-Jul-2003: Upgraded package: P<libxml-2.5.8-20030718> @@ . ______________________________________________________________________ The OpenPKG Project www.openpkg.org CVS Repository Commit List [EMAIL PROTECTED]