1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-02-06 11:41:52 +00:00

Add changing the owner/group/mode for the socket.

PR:		213385
Submitted by:	mat
Approved by:	maintainer
Sponsored by:	Absolight
This commit is contained in:
Mathieu Arnold 2016-10-17 12:03:08 +00:00
parent b65113bb10
commit 5a8c757533
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=424112
2 changed files with 33 additions and 1 deletions

View File

@ -2,7 +2,7 @@
PORTNAME= fcgiwrap
PORTVERSION= 1.1.0
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= www
MASTER_SITES= http://www.skysmurf.nl/comp/FreeBSD/distfiles/

View File

@ -19,6 +19,9 @@
# - tcp6:[ipv6_addr]:port (for ipv6)
# fcgiwrap_flags=
# Use fcgiwrap_user to run fcgiwrap as user
# Use fcgiwrap_socket_mode to change the mode of the socket
# Use fcgiwrap_socket_owner to change the owner of the socket
# Use fcgiwrap_socket_group to change the group of the socket
# fcgiwrap rc.d script supports multiple profiles (a-la rc.d/nginx)
# When profiles are specified, the non-profile specific parameters become defaults.
@ -29,10 +32,12 @@
# fcgiwrap_enable="YES"
# fcgiwrap_profiles="myserver myotherserver"
# fcgiwrap_flags="-c 4"
# fcgiwrap_socket_owner="www"
# fcgiwrap_myserver_socket="unix:/var/run/fcgiwrap.myserver.socket"
# fcgiwrap_myserver_user="myuser"
# fcgiwrap_myotherserver_socket="unix:/var/run/fcgiwrap.myotherserver.socket"
# fcgiwrap_myotherserver_user="myotheruser"
# fcgiwrap_myserver_socket_mode="0775"
# fcgiwrap_myotherserver_flags="" # No flags for this profile.
. /etc/rc.subr
@ -62,6 +67,26 @@ fcgiwrap_precmd() {
install -d -o root -g wheel -m 1777 /var/run/fcgiwrap
}
fcgiwrap_postcmd() {
# This is only for unix sockets
case "${fcgiwrap_socket}" in
unix:*)
;;
*)
return
;;
esac
if [ -n "${fcgiwrap_socket_mode}" ]; then
chmod ${fcgiwrap_socket_mode} ${fcgiwrap_socket#unix:}
fi
if [ -n "${fcgiwrap_socket_owner}" ]; then
chown ${fcgiwrap_socket_owner} ${fcgiwrap_socket#unix:}
fi
if [ -n "${fcgiwrap_socket_group}" ]; then
chgrp ${fcgiwrap_socket_group} ${fcgiwrap_socket#unix:}
fi
}
fcgiwrap_cleansocket() {
# Workaround the fact that fcgiwrap doesn't cleanup his socket at stopping
case ${fcgiwrap_socket} in
@ -78,6 +103,7 @@ pidfile="${pidprefix}.pid" # May be a different path if profiles are in use
procname="%%PREFIX%%/sbin/${name}"
command="/usr/sbin/daemon"
start_precmd="fcgiwrap_precmd"
start_postcmd="fcgiwrap_postcmd"
stop_postcmd="fcgiwrap_cleansocket"
load_rc_config $name
@ -86,6 +112,9 @@ load_rc_config $name
fcgiwrap_enable=${fcgiwrap_enable:-"NO"}
fcgiwrap_user=${fcgiwrap_user:-"root"}
fcgiwrap_socket=${fcgiwrap_socket:-"unix:/var/run/fcgiwrap/fcgiwrap.sock"}
fcgiwrap_socket_mode=${fcgiwrap_socket_mode:-"0755"}
fcgiwrap_socket_owner=${fcgiwrap_socket_owner:-"root"}
fcgiwrap_socket_group=${fcgiwrap_socket_group:-"wheel"}
# This handles profile specific vars.
if [ -n "$2" ]; then
@ -96,6 +125,9 @@ if [ -n "$2" ]; then
eval fcgiwrap_fib="\${fcgiwrap_${profile}_fib:-${fcgiwrap_fib}}"
eval fcgiwrap_user="\${fcgiwrap_${profile}_user:-${fcgiwrap_user}}"
eval fcgiwrap_socket="\${fcgiwrap_${profile}_socket:?}"
eval fcgiwrap_socket_mode="\${fcgiwrap_${profile}_socket_mode:-${fcgiwrap_socket_mode}}"
eval fcgiwrap_socket_owner="\${fcgiwrap_${profile}_socket_owner:-${fcgiwrap_socket_owner}}"
eval fcgiwrap_socket_group="\${fcgiwrap_${profile}_socket_group:-${fcgiwrap_socket_group}}"
eval fcgiwrap_flags="\${fcgiwrap_${profile}_flags:-${fcgiwrap_flags}}"
else
echo "$0: extra argument ignored"