cvs commit: ports/mail/mailscanner Makefile ports/mail/mailscanner/files mailscanner.in

Doug Barton dougb at FreeBSD.org
Tue Jan 3 00:01:26 UTC 2012


The mailscanner.in script has some "issues." Most of which can be
resolved by careful review of
http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/rc-scripts.html.
However there are some more subtle things here as well.

_user is a "magical" variable, it causes rc.subr to use su by default.
So the mailscanner_start method is almost certainly not necessary. The
mailscanner_user test should not run unconditionally, but since now the
only thing it is needed for is the pid file, there's no reason not to
just do that unconditionally.

This change should be tested of course, but I'm fairly sure it will work.

The mta.in script could also stand a little polishing along some of the
same lines.


Doug


On 01/02/2012 12:38, Chris Rees wrote:
> crees       2012-01-02 20:38:33 UTC
> 
>   FreeBSD ports repository
> 
>   Modified files:
>     mail/mailscanner     Makefile 
>     mail/mailscanner/files mailscanner.in 
>   Log:
>   Add reload function to rc script
>   
>   PR:             ports/163786  http://www.FreeBSD.org/cgi/query-pr.cgi?pr=163786
>   Submitted by:   Carl Lindberg <lindberg+freebsdbugs at clindberg.org>
>   
>   Revision  Changes    Path
>   1.97      +1 -0      ports/mail/mailscanner/Makefile
>   1.5       +1 -0      ports/mail/mailscanner/files/mailscanner.in
> 
> http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/mail/mailscanner/Makefile.diff?&r1=1.96&r2=1.97&f=h
> http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/mail/mailscanner/files/mailscanner.in.diff?&r1=1.4&r2=1.5&f=h
> 



-- 

	You can observe a lot just by watching.	-- Yogi Berra

	Breadth of IT experience, and depth of knowledge in the DNS.
	Yours for the right price.  :)  http://SupersetSolutions.com/

-------------- next part --------------
Index: mailscanner.in
===================================================================
RCS file: /home/pcvs/ports/mail/mailscanner/files/mailscanner.in,v
retrieving revision 1.5
diff -u -r1.5 mailscanner.in
--- mailscanner.in	2 Jan 2012 20:38:33 -0000	1.5
+++ mailscanner.in	2 Jan 2012 23:56:07 -0000
@@ -1,17 +1,20 @@
 #! /bin/sh
 
+# $FreeBSD$
+#
 # PROVIDE: mailscanner
 # REQUIRE: mta
 # KEYWORD: shutdown
-
 #
 # Add the following lines to /etc/rc.conf to enable mailscanner:
 # mailscanner_enable (bool):      Set to "NO" by default.
 #                                 Set it to "YES" to enable mailscanner
 # mailscanner_configfile (path):  Set to "%%PREFIX%%/etc/MailScanner/MailScanner.conf" by default.
 # mailscanner_pidfile (path):     Set to "/var/run/MailScanner.pid" by default.
-# mailscanner_user (str):         Set to "root" by default. If you changed the "Run As User" variable in MailScanner.conf and wish to disable taint mode, you MUST also set the same value here.
 #
+# mailscanner_user (str):         Set to "root" by default.
+#	If you changed the "Run As User" variable in MailScanner.conf and wish
+#	to disable taint mode,you MUST also set the same value here.
 
 . /etc/rc.subr
 
@@ -20,32 +23,15 @@
 
 load_rc_config $name
 
-: ${mailscanner_enable="NO"}
-: ${mailscanner_configfile="%%PREFIX%%/etc/MailScanner/MailScanner.conf"}
-: ${mailscanner_pidfile="/var/run/MailScanner.pid"}
+: ${mailscanner_enable:="NO"}
+
+required_files=${mailscanner_configfile:-"%%PREFIX%%/etc/MailScanner/MailScanner.conf"}
+pidfile=${mailscanner_pidfile:-"/var/run/MailScanner.pid"}
 
 command="%%PREFIX%%/sbin/mailscanner"
-pidfile=${mailscanner_pidfile}
-command_args="${mailscanner_configfile}"
+command_args="${required_files}"
 procname="MailScanner"
+start_precmd="install -o ${mailscanner_user:-root} /dev/null $pidfile"
 extra_commands=reload
 
-required_files="${mailscanner_configfile}"
-
-pid_touch ()
-{
-	touch $mailscanner_pidfile
-	chown $mailscanner_user $mailscanner_pidfile
-}
-
-mailscanner_start() {
-	su -m ${mailscanner_user} -c "exec ${command} ${command_args}"
-}
-
-if [ -n "${mailscanner_user}" ]; then
-	start_cmd="mailscanner_start"
-	start_precmd="pid_touch"
-fi
-
 run_rc_command "$1"
-


More information about the cvs-ports mailing list