Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Aug 2013 01:40:34 GMT
From:      Ari Maniatis <ari@ish.com.au>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/180992: pureftpd port support for authentication daemon
Message-ID:  <201308020140.r721eYGw016240@oldred.freebsd.org>
Resent-Message-ID: <201308020150.r721o0JA035953@freefall.freebsd.org>

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

>Number:         180992
>Category:       ports
>Synopsis:       pureftpd port support for authentication daemon
>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:   Fri Aug 02 01:50:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Ari Maniatis
>Release:        
>Organization:
ish
>Environment:
>Description:
Pureftp has support for an authentication daemon which is very useful when integrating with other tools, databases, etc This patch provides this support to the pureftp rc.d startup script.
>How-To-Repeat:

>Fix:
===================================================================
--- pure-ftpd	(revision 4740)
+++ pure-ftpd	(working copy)
@@ -15,6 +15,10 @@
 # pureftpd_upload_enable="YES"
 # pureftpd_uploadscript="/full/path/to/launch_script"

+# For launch authd daemon define
+# pureftpd_authd_enable="YES"
+# pureftpd_authdscript="/full/path/to/launch_script"
+
 . /etc/rc.subr

 name=pureftpd
@@ -24,16 +28,19 @@

 command=/usr/local/sbin/pure-config.pl
 command_upload=/usr/local/sbin/pure-uploadscript
+command_authd=/usr/local/sbin/pure-authd
 pureftpd_uploadscript=${pureftpd_uploadscript:-"/usr/bin/touch"}
 pureftpd_config=${pureftpd_config:-"/usr/local/etc/pure-ftpd.conf"}
 required_files=${pureftpd_config}
 pidfile=/var/run/pure-ftpd.pid
 pidfile2=/var/run/pure-uploadscript.pid
+pidfile3=/var/run/pure-authd.pid
 procname=pure-ftpd

 pureftpd_enable=${pureftpd_enable:-"NO"}
 command_args="${pureftpd_config} -g${pidfile}"
 command_upload_args="-B -r ${pureftpd_uploadscript}"
+command_authd_args="-B -p ${pidfile3} -s /var/run/pure-authd.sock -r ${pureftpd_authdscript}"

 start_postcmd=start_postcmd
 stop_postcmd=stop_postcmd
@@ -41,23 +48,39 @@
 start_postcmd()
 {
        if test -n ${pureftpd_upload_enable:-""} && checkyesno pureftpd_upload_enable; then
-       echo "Starting ${command_upload}."
-       ${command_upload} ${command_upload_args}
+        echo "Starting ${command_upload}."
+        ${command_upload} ${command_upload_args}
        fi
+       if test -x ${pureftpd_authdscript} && checkyesno pureftpd_authd_enable; then
+        echo "Starting pure-authd (${pureftpd_authdscript})."
+        ${command_authd} ${command_authd_args}
+       fi
 }

 stop_postcmd()
 {
         if test -n ${pureftpd_upload_enable:-""} && checkyesno pureftpd_upload_enable; then
-        pid=$(check_pidfile ${pidfile2} ${command_upload})
-        if [ -z ${pid} ]; then
-        echo "Upload script not running? (check ${pidfile2})."
-        return 1
+          pid=$(check_pidfile ${pidfile2} ${command_upload})
+          if [ -z ${pid} ]; then
+            echo "Upload script not running? (check ${pidfile2})."
+            return 1
+          fi
+          echo "Stopping ${command_upload}."
+          kill -${sig_stop:-TERM} ${pid}
+          [ $? -ne 0 ] && [ -z "$rc_force" ] && return 1
+          wait_for_pids ${pid}
         fi
-        echo "Stopping ${command_upload}."
-        kill -${sig_stop:-TERM} ${pid}
-        [ $? -ne 0 ] && [ -z "$rc_force" ] && return 1
-        wait_for_pids ${pid}
+
+        if test -n ${pureftpd_authd_enable:-""} && checkyesno pureftpd_authd_enable; then
+          pid=$(check_pidfile ${pidfile3} ${command_authd})
+          if [ -z ${pid} ]; then
+            echo "Authd daemon not running? (check ${pidfile3})."
+            return 1
+          fi
+          echo "Stopping ${command_authd}."
+          kill -${sig_stop:-TERM} ${pid}
+          [ $? -ne 0 ] && [ -z "$rc_force" ] && return 1
+          wait_for_pids ${pid}
         fi
 }

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



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