From owner-freebsd-ports-bugs@FreeBSD.ORG Sun Apr 22 07:50:04 2007 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4667816A402 for ; Sun, 22 Apr 2007 07:50:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 28EC713C459 for ; Sun, 22 Apr 2007 07:50:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l3M7o3S2042619 for ; Sun, 22 Apr 2007 07:50:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l3M7o30R042618; Sun, 22 Apr 2007 07:50:03 GMT (envelope-from gnats) Resent-Date: Sun, 22 Apr 2007 07:50:03 GMT Resent-Message-Id: <200704220750.l3M7o30R042618@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Matthias Andree Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 940CE16A408; Sun, 22 Apr 2007 07:49:27 +0000 (UTC) (envelope-from matthias.andree@gmx.de) Received: from m2a2.dyndns.org (p509123B2.dip0.t-ipconnect.de [80.145.35.178]) by mx1.freebsd.org (Postfix) with ESMTP id 7E41B13C484; Sun, 22 Apr 2007 07:49:26 +0000 (UTC) (envelope-from matthias.andree@gmx.de) Received: by merlin.emma.line.org (Postfix, from userid 500) id 8F04DDEA1; Sun, 4 Feb 2007 23:04:43 +0100 (CET) Message-Id: <20070422072420.8F04DDEA1@merlin.emma.line.org> From: Matthias Andree To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: gkozyrev@gmail.com, vd@FreeBSD.org, dsh@vlink.ru Subject: ports/111997: [MAINTAINER] security/openvpn: add multiple-profile feature to rc script X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Sun, 22 Apr 2007 07:50:04 -0000 X-Original-Date: Sun, 4 Feb 2007 23:04:43 +0100 (CET) X-List-Received-Date: Sun, 22 Apr 2007 07:50:04 -0000 >Number: 111997 >Category: ports >Synopsis: [MAINTAINER] security/openvpn: add multiple-profile feature to rc script >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sun Apr 22 07:50:03 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Matthias Andree >Release: FreeBSD 6.2-PRERELEASE i386 >Organization: >Environment: System: FreeBSD merlin.emma.line.org 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #18: Sun Jan 14 13:10:49 CET 2007 >Description: - Add multiple profile support to rc script (backwards compatible). - Bump portrevision. - Update note about OpenVPN 2.0.X newer releases. This is a revised edition of Gleb Kozyrev's patch (vd: patch-3.diff) Supersedes: ports/108371 Submitted by: Denis Shaposhnikov and Gleb Kozyrev Generated with FreeBSD Port Tools 0.77 >How-To-Repeat: >Fix: --- openvpn-2.0.6_5.patch begins here --- diff -ruN --exclude=CVS /usr/ports/security/openvpn/Makefile /root/ports/security/openvpn/Makefile --- /usr/ports/security/openvpn/Makefile Sun Feb 4 20:14:20 2007 +++ /root/ports/security/openvpn/Makefile Sun Feb 4 22:36:03 2007 @@ -7,13 +7,13 @@ PORTNAME= openvpn # ----------------------------------------------------- -# DO NOT BOTHER TO SEND NOTICES ABOUT 2.0.8 AS IT FIXES +# DO NOT BOTHER TO SEND NOTICES ABOUT 2.0.9 AS IT FIXES # WINDOWS-ONLY BUGS THAT DON'T AFFECT *BSD AND THUS # DOES NOT WARRANT A PORT UPGRADE! AND UPGRADE REQUESTS -# WILL BE DROPPED. -- Matthias Andree, 2006-10-01 +# WILL BE DROPPED. -- Matthias Andree, 2007-02-04 # ----------------------------------------------------- PORTVERSION= 2.0.6 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= security net # MASTER_SITES points to hosts in distinct data centers, # so just one MASTER_SITES entry should be OK. diff -ruN --exclude=CVS /usr/ports/security/openvpn/files/openvpn.sh.in /root/ports/security/openvpn/files/openvpn.sh.in --- /usr/ports/security/openvpn/files/openvpn.sh.in Mon Feb 20 21:47:39 2006 +++ /root/ports/security/openvpn/files/openvpn.sh.in Sun Feb 4 23:01:09 2007 @@ -1,11 +1,12 @@ #!/bin/sh # -# openvpn.sh - load tun/tap driver and start OpenVPN daemon +# openvpn.sh - load tun/tap driver and start OpenVPN daemon(s) # -# (C) Copyright 2005 by Matthias Andree -# based on suggestions by Matthias Grimm and Dirk Gouders +# (C) Copyright 2005,2007 by Matthias Andree +# based on suggestions by Matthias Grimm, Dirk Gouders, +# profiles feature by Denis Shaposhnikov and Gleb Kozyrev # -# Made in Northrhine-Westphalia, Germany +# This script is under the new BSD license. # # $FreeBSD: ports/security/openvpn/files/openvpn.sh.in,v 1.4 2006/02/20 20:47:39 dougb Exp $ # @@ -37,6 +38,7 @@ # # # optional: # openvpn_flags="" # openvpn command line flags +# openvpn_configdir="%%PREFIX%%/etc/openvpn" # config directory # openvpn_configfile="%%PREFIX%%/etc/openvpn/openvpn.conf" # --config file # openvpn_dir="%%PREFIX%%/etc/openvpn" # --cd directory # @@ -44,6 +46,21 @@ # file and directory where keys and certificates reside differ from the above # settings. # +# Add "openvpn_profiles" to run several instances of openvpn with +# different parameters. Consider the following example: +# +# openvpn_enable="YES" +# openvpn_profiles="default tcp" +# +# This will run two instances of openvpn: one with default config and pidfile +# and the other with config file %%PREFIX%%/etc/openvpn/tcp.conf +# and pidfile /var/run/openvpn_tcp.pid +# +# You may specify different locations by setting openvpn_NAME_xxx variables: +# +# openvpn_tcp_configfile="%%PREFIX%%/etc/other/openvpn_tcp.conf" +# openvpn_tcp_pidfile="/var/run/openpvn_tcp.pid" +# # Note that we deliberately refrain from unloading drivers. # # For further documentation, please see openvpn(8). @@ -78,6 +95,54 @@ rm -f "$pidfile" || warn "Could not remove $pidfile." } +setup_profile_vars() +{ + name=openvpn_$1 + eval ": \${openvpn_${1}_configfile=${openvpn_configdir}/${1}.conf}" + eval ": \${openvpn_${1}_dir=${openvpn_dir}}" + eval ": \${openvpn_${1}_flags=${openvpn_flags}}" + eval ": \${openvpn_${1}_pidfile=/var/run/openvpn_${1}.pid}" + eval "pidfile=\"\${openvpn_${1}_pidfile}\"" + eval "required_files=\"\${openvpn_${1}_configfile}\"" + eval "command_args=\"--cd \${openvpn_${1}_dir} --daemon --config \${openvpn_${1}_configfile} --writepid \${pidfile}\"" +} + +start_profiles() +{ + unset start_cmd start_precmd + for _profile in ${openvpn_profiles}; do + setup_profile_vars $_profile + run_rc_command "${rc_arg}" + done +} + +stop_profiles() +{ + unset stop_cmd + for _profile in ${openvpn_profiles}; do + setup_profile_vars $_profile + run_rc_command "${rc_arg}" + done +} + +status_profiles() +{ + unset status_cmd + for _profile in ${openvpn_profiles}; do + setup_profile_vars $_profile + run_rc_command "${rc_arg}" + done +} + +reload_profiles() +{ + unset reload_cmd + for _profile in ${openvpn_profiles}; do + setup_profile_vars $_profile + run_rc_command "${rc_arg}" + done +} + # support SIGHUP to reparse configuration file extra_commands="reload" @@ -93,11 +158,32 @@ stop_postcmd="stop_postcmd" load_rc_config ${name} + : ${openvpn_enable="NO"} : ${openvpn_flags=""} : ${openvpn_if=""} +: ${openvpn_configdir="${prefix}/etc/openvpn"} : ${openvpn_configfile="${prefix}/etc/openvpn/openvpn.conf"} : ${openvpn_dir="${prefix}/etc/openvpn"} +: ${openvpn_profiles="default"} +: ${openvpn_default_configfile="${openvpn_configfile}"} +: ${openvpn_default_pidfile="${pidfile}"} + required_files="${openvpn_configfile}" command_args="--cd ${openvpn_dir} --daemon --config ${openvpn_configfile} --writepid ${pidfile}" -run_rc_command "$1" + +cmd="$1" +if [ $# -gt 0 ]; then + shift +fi + +[ -n "$*" ] && openvpn_profiles="$*" + +if [ -n "${openvpn_profiles}" -a "${openvpn_profiles}" != "default" ]; then + start_cmd="start_profiles" + stop_cmd="stop_profiles" + status_cmd="status_profiles" + reload_cmd="reload_profiles" +fi + +run_rc_command "$cmd" --- openvpn-2.0.6_5.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: