From: <abe...@us...> - 2016-11-12 19:36:08
|
Revision: 7950 http://sourceforge.net/p/astlinux/code/7950 Author: abelbeck Date: 2016-11-12 19:36:06 +0000 (Sat, 12 Nov 2016) Log Message: ----------- strongswan, a usable /etc/init.d/ipsec script and symlink /etc/ strongswan files/dirs to /mnt/kd/ipsec/strongswan/ Modified Paths: -------------- branches/1.0/package/strongswan/ipsec.init branches/1.0/package/strongswan/strongswan.mk Modified: branches/1.0/package/strongswan/ipsec.init =================================================================== --- branches/1.0/package/strongswan/ipsec.init 2016-11-12 04:50:08 UTC (rev 7949) +++ branches/1.0/package/strongswan/ipsec.init 2016-11-12 19:36:06 UTC (rev 7950) @@ -2,21 +2,64 @@ . /etc/rc.conf -init () -{ - : +. /etc/init.d/functions.d/misc + +PIDFILE="/var/run/charon.pid" + +init () { + + if ! SYS_is_vpn_type ipsec; then + exit + fi + + if [ ! -d /mnt/kd/ipsec/strongswan ]; then + mkdir -p /mnt/kd/ipsec/strongswan + if [ -d /stat/etc/strongswan ]; then + cp -a /stat/etc/strongswan/* /mnt/kd/ipsec/strongswan/ + fi + fi + + ln -snf /mnt/kd/ipsec/strongswan /tmp/etc/strongswan + + # Create lock dir managed by 'ipsec' + mkdir -p /var/lock/subsys } start () { - : + if SYS_is_vpn_type ipsec; then + + /usr/sbin/ipsec start >/dev/null + fi } stop () { - : + if [ -f $PIDFILE ]; then + + /usr/sbin/ipsec stop + + # strongswan is known to leave PID files behind when something goes wrong, cleanup here + cnt=5 + while [ $cnt -gt 0 ] && [ -f $PIDFILE ]; do + cnt=$((cnt - 1)) + sleep 1 + done + rm -f $PIDFILE + # and just to make sure they are really really dead at this point... + killall -9 charon >/dev/null 2>&1 + fi } +reload () +{ + if [ -f $PIDFILE ]; then + /usr/sbin/ipsec reload + else + start + fi +} + case $1 in init) @@ -38,8 +81,12 @@ start ;; +reload) + reload + ;; + *) - echo "Usage: start|stop|restart" >&2 + echo "Usage: start|stop|restart|reload" >&2 exit 1 ;; Modified: branches/1.0/package/strongswan/strongswan.mk =================================================================== --- branches/1.0/package/strongswan/strongswan.mk 2016-11-12 04:50:08 UTC (rev 7949) +++ branches/1.0/package/strongswan/strongswan.mk 2016-11-12 19:36:06 UTC (rev 7950) @@ -8,6 +8,8 @@ STRONGSWAN_SOURCE = strongswan-$(STRONGSWAN_VERSION).tar.bz2 STRONGSWAN_SITE = https://download.strongswan.org STRONGSWAN_DEPENDENCIES = openssl host-pkg-config +STRONGSWAN_TARGET_ETC = ipsec.conf ipsec.d ipsec.secrets strongswan.conf strongswan.d swanctl + STRONGSWAN_CONF_OPT += \ --without-lib-prefix \ --enable-led=no \ @@ -53,6 +55,13 @@ endif define STRONGSWAN_POST_INSTALL + mkdir -p $(TARGET_DIR)/stat/etc/strongswan + for i in $(STRONGSWAN_TARGET_ETC); do \ + cp -a $(TARGET_DIR)/etc/$$i $(TARGET_DIR)/stat/etc/strongswan/ ; \ + rm -rf $(TARGET_DIR)/etc/$$i ; \ + ln -s /tmp/etc/strongswan/$$i $(TARGET_DIR)/etc/$$i ; \ + done + rm -rf $(TARGET_DIR)/usr/share/strongswan $(INSTALL) -m 0755 -D package/strongswan/ipsec.init $(TARGET_DIR)/etc/init.d/ipsec ln -sf ../../init.d/ipsec $(TARGET_DIR)/etc/runlevels/default/S31ipsec ln -sf ../../init.d/ipsec $(TARGET_DIR)/etc/runlevels/default/K20ipsec @@ -63,12 +72,10 @@ STRONGSWAN_UNINSTALL_STAGING_OPT = --version define STRONGSWAN_UNINSTALL_TARGET_CMDS + rm -rf $(TARGET_DIR)/stat/etc/strongswan rm -rf $(TARGET_DIR)/usr/lib/ipsec rm -rf $(TARGET_DIR)/usr/libexec/ipsec - rm -rf $(TARGET_DIR)/etc/strongswan.* - rm -rf $(TARGET_DIR)/etc/ipsec.* - rm -rf $(TARGET_DIR)/etc/swanctl - rm -rf $(TARGET_DIR)/usr/share/strongswan + rm -f $(addprefix $(TARGET_DIR)/etc/, $(STRONGSWAN_TARGET_ETC)) rm -f $(TARGET_DIR)/etc/init.d/ipsec rm -f $(TARGET_DIR)/etc/runlevels/default/S31ipsec rm -f $(TARGET_DIR)/etc/runlevels/default/K20ipsec This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |