Menu

[r2016]: / trunk / etc / rc.d / pureftpd  Maximize  Restore  History

Download this file

61 lines (51 with data), 1.9 kB

#!/bin/sh
# Copyright (c) 2007 Volker Theile (votdev@gmx.de)
# All rights reserved.

# PROVIDE: pureftpd
# REQUIRE: DAEMON
# KEYWORD: shutdown
# XQUERY: -i "count(//ftp/enable) > 0" -o "0" -b
# RCVAR: pureftpd

. /etc/rc.subr
. /etc/configxml.subr

name="pureftpd"
rcvar=`set_rcvar`

# Custom commands
start_precmd="create_conf"

# Defaults
pureftpd_enable=${pureftpd_enable:-"NO"}
command="/usr/local/sbin/pure-ftpd"
pidfile="/var/run/pure-ftpd.pid"

create_conf()
{
	local _banner

	# Create /mnt/.banner file.
	_banner=`configxml_get "//ftp/banner"`
	if [ -z "${_banner}" ]; then
		_productname=`cat /etc/prd.name`
		echo "Welcome to ${_productname} FTP service" > /mnt/.banner
	else
		echo ${_banner} > /mnt/.banner
	fi

	# Set command args.
	command_args=`/usr/local/bin/xml sel -t -m "/${configxml_root}/ftp" \
		-v "concat('-S ',port)" \
		-v "concat(' -c ',numberclients)" \
		-v "concat(' -I ',timeout)" \
		-o " -M -B -b" \
		-i "maxconperip[. > 0]" -v "concat(' -C ',maxconperip)" -b \
		-i "count(anonymous) > 0" -i "count(localuser) = 0" -o " -e" -b -b \
		-i "count(anonymous) = 0" -i "count(localuser) > 0" -o " -E" -b -b \
		-i "pasv_min_port[. != '0']" -i "pasv_max_port[. != '0']" -v "concat(' -p ',pasv_min_port,':',pasv_max_port)" -b -b \
		-i "string-length(filemask) > 0" -i "string-length(directorymask) > 0" -v "concat(' -U ',filemask,':',directorymask)" -b -b \
		-i "string-length(filemask) = 0" -i "string-length(directorymask) = 0" -o " -U 077:022" -b -b \
		-i "string-length(pasv_address) > 0" -v "concat(' -P ',pasv_address)" -b \
		-i "count(natmode) > 0" -o " -N" -b \
		-i "count(fxp) > 0" -o " -W" -b \
		-i "count(keepallfiles) > 0" -o " -K" -b \
		-i "count(permitrootlogin) = 0" -o " -u 1" -b \
		-i "count(chrooteveryone) > 0" -o " -A" -b \
		${configxml_file} | /usr/local/bin/xml unesc`
}

load_rc_config ${name}
run_rc_command "$1"
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.