ports/72691: New port: net/siproxd - a proxy/masquerading daemon for SIP

Frank W. Josellis frank at dynamical-systems.org
Thu Oct 14 14:40:27 UTC 2004


>Number:         72691
>Category:       ports
>Synopsis:       New port: net/siproxd - a proxy/masquerading daemon for SIP
>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:   Thu Oct 14 14:40:25 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Frank W. Josellis
>Release:        FreeBSD 4.10-STABLE i386
>Organization:
none
>Environment:
System: FreeBSD achilles.tractrix.org 4.10-STABLE FreeBSD 4.10-STABLE #0: Sun Oct 3 22:22:17 CEST 2004 root@:/usr/obj/usr/src/sys/ACHILLES i386


>Description:
        Siproxd is a proxy/masquerading daemon for the SIP protocol.
        It handles registrations of SIP clients on a private IP network
        and performs rewriting of the SIP message bodies to make SIP
        connections possible via a masquerading firewall.
        It allows SIP clients (like kphone, linphone) to work behind
        an IP masquerading firewall or router.

>How-To-Repeat:

>Fix:
--- siproxd-0.5.8.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	net/siproxd
#	net/siproxd/Makefile
#	net/siproxd/distinfo
#	net/siproxd/pkg-deinstall
#	net/siproxd/pkg-descr
#	net/siproxd/pkg-install
#	net/siproxd/pkg-plist
#	net/siproxd/files
#	net/siproxd/files/patch-doc_siproxd.conf.example
#	net/siproxd/files/patch-src_siproxd.c
#	net/siproxd/files/patch-src_utils.c
#	net/siproxd/files/siproxd.sh
#
echo c - net/siproxd
mkdir -p net/siproxd > /dev/null 2>&1
echo x - net/siproxd/Makefile
sed 's/^X//' >net/siproxd/Makefile << 'END-of-net/siproxd/Makefile'
X# New ports collection makefile for:	siproxd
X# Date created:		10 October 2004
X# Whom:			Frank W. Josellis <frank at dynamical-systems.org>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	siproxd
XPORTVERSION=	0.5.8
XCATEGORIES=	net
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	siproxd
X
XMAINTAINER=	frank at dynamical-systems.org
XCOMMENT=	A proxy/masquerading daemon for the SIP protocol
X
XLIB_DEPENDS=	osip2.2:${PORTSDIR}/net/libosip2
X
XUSE_GETOPT_LONG=yes
XUSE_RC_SUBR=	yes
XHAS_CONFIGURE=	yes
X
XPORTDOCS=	AUTHORS ChangeLog README RELNOTES \
X		doc/FAQ doc/KNOWN_BUGS doc/RFC3261_compliance.txt \
X		doc/sample_cfg_budgetone.txt doc/sample_cfg_x-lite.txt
X
X.include <bsd.port.pre.mk>
X
X.if ${OSVERSION} >= 500041
XLIB_DEPENDS+=	gnugetopt.1:${PORTSDIR}/devel/libgnugetopt
X.endif
X
Xpost-install:
X.if !defined(NOPORTDOCS)
X	${MKDIR} ${DOCSDIR}
X.for i in ${PORTDOCS}
X	${INSTALL_MAN} ${WRKSRC}/${i} ${DOCSDIR}
X.endfor
X.endif
X	PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
X	@${SED} -e 's|%%PREFIX%%|${PREFIX}|g' \
X		-e 's|%%RC_SUBR%%|${RC_SUBR}|g' \
X		${FILESDIR}/siproxd.sh > ${PREFIX}/etc/rc.d/siproxd.sh
X	@${CHMOD} 755 ${PREFIX}/etc/rc.d/siproxd.sh
X
X.include <bsd.port.post.mk>
END-of-net/siproxd/Makefile
echo x - net/siproxd/distinfo
sed 's/^X//' >net/siproxd/distinfo << 'END-of-net/siproxd/distinfo'
XMD5 (siproxd-0.5.8.tar.gz) = b987151719fced722b6df7d16c06f58d
XSIZE (siproxd-0.5.8.tar.gz) = 193802
END-of-net/siproxd/distinfo
echo x - net/siproxd/pkg-deinstall
sed 's/^X//' >net/siproxd/pkg-deinstall << 'END-of-net/siproxd/pkg-deinstall'
X#!/bin/sh
X
XPKG_PREFIX=${PKG_PREFIX:=/usr/local}
XSIPROXD_HOME=${PKG_PREFIX}/siproxd
XSIPROXD_PID=${SIPROXD_HOME}/siproxd.pid
X
Xcase $2 in
X    DEINSTALL)
X    [ -r ${SIPROXD_PID} ] && kill `cat ${SIPROXD_PID}`
X    rm -f ${SIPROXD_HOME}/* && rmdir ${SIPROXD_HOME}
X    ;;
Xesac
END-of-net/siproxd/pkg-deinstall
echo x - net/siproxd/pkg-descr
sed 's/^X//' >net/siproxd/pkg-descr << 'END-of-net/siproxd/pkg-descr'
XSiproxd is a proxy/masquerading daemon for the SIP protocol.
XIt handles registrations of SIP clients on a private IP network
Xand performs rewriting of the SIP message bodies to make SIP
Xconnections possible via a masquerading firewall.
XIt allows SIP clients (like kphone, linphone) to work behind
Xan IP masquerading firewall or router.
X
XWWW: http://siproxd.sourceforge.net/
END-of-net/siproxd/pkg-descr
echo x - net/siproxd/pkg-install
sed 's/^X//' >net/siproxd/pkg-install << 'END-of-net/siproxd/pkg-install'
X#!/bin/sh
X
XSIPROXD_HOME=${PKG_PREFIX}/siproxd
XSIPROXD_USER=nobody
XSIPROXD_GROUP=nobody
X
Xcase $2 in
X    POST-INSTALL)
X    mkdir ${SIPROXD_HOME} && \
X	chown ${SIPROXD_USER}:${SIPROXD_GROUP} ${SIPROXD_HOME} && \
X	chmod 750 ${SIPROXD_HOME}
X    for i in siproxd.conf.example siproxd_passwd.cfg; do
X	chgrp ${SIPROXD_GROUP} ${PKG_PREFIX}/etc/${i}
X	chmod 640 ${PKG_PREFIX}/etc/${i}
X    done
X    ;;
Xesac
END-of-net/siproxd/pkg-install
echo x - net/siproxd/pkg-plist
sed 's/^X//' >net/siproxd/pkg-plist << 'END-of-net/siproxd/pkg-plist'
Xetc/rc.d/siproxd.sh
Xetc/siproxd.conf.example
Xetc/siproxd_passwd.cfg
Xsbin/siproxd
X%%PORTDOCS%%%%DOCSDIR%%/FAQ
X%%PORTDOCS%%%%DOCSDIR%%/KNOWN_BUGS
X%%PORTDOCS%%%%DOCSDIR%%/RFC3261_compliance.txt
X%%PORTDOCS%%%%DOCSDIR%%/sample_cfg_budgetone.txt
X%%PORTDOCS%%%%DOCSDIR%%/sample_cfg_x-lite.txt
END-of-net/siproxd/pkg-plist
echo c - net/siproxd/files
mkdir -p net/siproxd/files > /dev/null 2>&1
echo x - net/siproxd/files/patch-doc_siproxd.conf.example
sed 's/^X//' >net/siproxd/files/patch-doc_siproxd.conf.example << 'END-of-net/siproxd/files/patch-doc_siproxd.conf.example'
X--- doc/siproxd.conf.example.orig	Sun May  9 14:53:06 2004
X+++ doc/siproxd.conf.example	Mon Oct 11 21:25:41 2004
X@@ -9,8 +9,8 @@
X ######################################################################
X # The interface names of INBOUND and OUTBOUND interface.
X #
X-if_inbound  = eth0
X-if_outbound = ppp0
X+if_inbound  = ed0
X+if_outbound = tun0
X 
X 
X ######################################################################
X@@ -70,20 +70,20 @@
X #   user:	uid/gid to switch to after startup
X #   chrootjail:	path to chroot to (chroot jail)
X user = nobody
X-#chrootjail = /var/lib/siproxd/
X+chrootjail = /usr/local/siproxd/
X 
X ######################################################################
X # Registration file:
X #   Where to store the current registrations.
X #   An empty value means we do not save registrations. Make sure that
X #   the specified directory path does exist!
X-registration_file = /var/lib/siproxd/siproxd_registrations
X+registration_file = siproxd_registrations
X 
X ######################################################################
X # PID file:
X #   Where to create the PID file.
X #   This file holds the PID of the main thread of siproxd.
X-pid_file = /var/run/siproxd/siproxd.pid
X+pid_file = siproxd.pid
X 
X ######################################################################
X # global switch to control the RTP proxy behaviour
END-of-net/siproxd/files/patch-doc_siproxd.conf.example
echo x - net/siproxd/files/patch-src_siproxd.c
sed 's/^X//' >net/siproxd/files/patch-src_siproxd.c << 'END-of-net/siproxd/files/patch-src_siproxd.c'
X--- src/siproxd.c.orig	Thu Aug 26 19:32:08 2004
X+++ src/siproxd.c	Thu Oct 14 07:18:15 2004
X@@ -179,6 +179,7 @@
X /*
X  * Init stuff
X  */
X+   INFO(PACKAGE"-"VERSION"-"BUILDSTR" started");
X 
X    /* read the config file */
X    if (read_config(configfile, config_search) == STS_FAILURE) exit(1);
X@@ -245,7 +246,6 @@
X    /* initialize the registration facility */
X    register_init();
X 
X-   INFO(PACKAGE"-"VERSION"-"BUILDSTR" started");
X /*
X  * silence the log - if so required...
X  */
END-of-net/siproxd/files/patch-src_siproxd.c
echo x - net/siproxd/files/patch-src_utils.c
sed 's/^X//' >net/siproxd/files/patch-src_utils.c << 'END-of-net/siproxd/files/patch-src_utils.c'
X--- src/utils.c.orig	Sun Aug 22 21:04:37 2004
X+++ src/utils.c	Thu Oct 14 07:18:15 2004
X@@ -247,12 +247,12 @@
X           * as it loads some dynamic libraries. Once chrootet
X           * these libraries will *not* be found and gethostbyname()
X           * calls will simply fail (return NULL pointer and h_errno=0).
X+          * Also (at least for FreeBSD) syslog() needs to be called
X+          * before chroot()ing - this is done in main() by an INFO().
X           * Took me a while to figure THIS one out
X           */
X          struct in_addr dummy;
X-         DEBUGC(DBCLASS_DNS, "Initializing DNS, the following DNS "
X-                             "failure is normal, don't worry");
X-         get_ip_by_host("foobar", &dummy);
X+         get_ip_by_host("localhost", &dummy);
X          DEBUGC(DBCLASS_CONFIG,"chrooting to %s",
X                 configuration.chrootjail);
X          sts = chroot(configuration.chrootjail);
END-of-net/siproxd/files/patch-src_utils.c
echo x - net/siproxd/files/siproxd.sh
sed 's/^X//' >net/siproxd/files/siproxd.sh << 'END-of-net/siproxd/files/siproxd.sh'
X#!/bin/sh
X#
X# $FreeBSD$
X#
X
X# PROVIDE: siproxd
X# REQUIRE: DAEMON
X# KEYWORD: FreeBSD
X#
X# NOTE for FreeBSD 5.0+:
X# If you want this script to start with the base rc scripts
X# move siproxd.sh to /etc/rc.d/siproxd
X
Xprefix=%%PREFIX%%
X
X# Define these siproxd_* variables in one of these files:
X#	/etc/rc.conf
X#	/etc/rc.conf.local
X#	/etc/rc.conf.d/siproxd
X#
X# DO NOT CHANGE THESE DEFAULT VALUES HERE
X#
Xsiproxd_enable=${siproxd_enable:-"NO"}	# Enable siproxd
Xsiproxd_flags=${siproxd_flags:-""}	# Flags to siproxd program
X#siproxd_program="${prefix}/sbin/siproxd"	# Location of siproxd
X
X. %%RC_SUBR%%
X
Xname="siproxd"
Xrcvar=`set_rcvar`
Xcommand="${prefix}/sbin/${name}"
X
Xload_rc_config $name
X
Xcase $1 in
X    start)
X    run_rc_command "$1" 2> /dev/null
X    ;;
X    *)
X    run_rc_command "$1"
X    ;;
Xesac
END-of-net/siproxd/files/siproxd.sh
exit
--- siproxd-0.5.8.shar ends here ---


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



More information about the freebsd-ports-bugs mailing list