aboutsummaryrefslogtreecommitdiffstats
path: root/main/ucarp
diff options
context:
space:
mode:
Diffstat (limited to 'main/ucarp')
-rw-r--r--main/ucarp/APKBUILD36
-rw-r--r--main/ucarp/ucarp.confd13
-rwxr-xr-xmain/ucarp/ucarp.initd62
3 files changed, 111 insertions, 0 deletions
diff --git a/main/ucarp/APKBUILD b/main/ucarp/APKBUILD
new file mode 100644
index 0000000000..0d1ab5cf3a
--- /dev/null
+++ b/main/ucarp/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Leonardo Arena <rnalrd@gmail.com>
+# Maintainer:
+pkgname=ucarp
+pkgver=1.5.1
+pkgrel=1
+pkgdesc="Share common IP and do fail over"
+url="http://www.ucarp.org"
+license="GPL"
+depends="uclibc libpcap"
+makedepends="libpcap-dev"
+install=
+subpackages=""
+source="http://download.pureftpd.org/pub/ucarp/$pkgname-$pkgver.tar.gz
+ ucarp.initd
+ ucarp.confd"
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+ install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+md5sums="391caa69fc17ffbc8a3543d8692021c9 ucarp-1.5.1.tar.gz
+44df7855b8733cb4dcea2e830a738c72 ucarp.initd
+bf914f6ce4fe4fea33a45d4d5b2c1fff ucarp.confd"
diff --git a/main/ucarp/ucarp.confd b/main/ucarp/ucarp.confd
new file mode 100644
index 0000000000..824358b430
--- /dev/null
+++ b/main/ucarp/ucarp.confd
@@ -0,0 +1,13 @@
+# Things you can set here
+# REALIP - if not set, will be first addr on iface
+# VHID - Virtual Server ID
+# VIP - The Virtual IP
+# PASSWORD - The password for the carp announcements
+# EXTRA_ARGS - extra arguments
+
+REALIP=
+VHID=2
+VIP=127.0.0.1
+PASSWORD=SecretPassword
+#EXTRA_ARGS="--neutral --advbase=3"
+
diff --git a/main/ucarp/ucarp.initd b/main/ucarp/ucarp.initd
new file mode 100755
index 0000000000..ff101fce47
--- /dev/null
+++ b/main/ucarp/ucarp.initd
@@ -0,0 +1,62 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+
+# A simple script to start and stop a ucarp instance
+DAEMON=/usr/sbin/ucarp
+
+IFACE="${SVCNAME#*.}"
+if [ -n "$IFACE" ] && [ "${SVCNAME}" != "ucarp" ]; then
+ UP="/etc/ucarp/vip-up-$IFACE.sh"
+ DOWN="/etc/ucarp/vip-down-$IFACE.sh"
+ . /etc/conf.d/ucarp.$IFACE
+else
+ UP="/etc/ucarp/vip-up.sh"
+ DOWN="/etc/ucarp/vip-down.sh"
+fi
+
+
+# Get the primary ip address for a given interface
+get_first_ip() {
+ local foo=$( ip addr show $1 )
+ [ $? != 0 ] && foo=""
+ echo $( echo "$foo" | grep "inet " | head -n1 | \
+ sed "s+^.*inet ++g; s+/.*$++g" )
+}
+
+if [ -z "$REALIP" ]; then
+ REALIP=$( get_first_ip $IFACE )
+fi
+
+start () {
+ ebegin "Starting ucarp $IFACE"
+ start-stop-daemon --start --exec $DAEMON \
+ --background -m -p /var/run/ucarp-$IFACE.pid -- \
+ -i $IFACE -s $REALIP -v $VHID -p $PASSWORD -a $VIP \
+ -u $UP -d $DOWN $EXTRA_ARGS -z
+ eend $?
+}
+
+status () {
+ ebegin "ucarp $IFACE is ..."
+ PIDS=$( pidof $( basename $DAEMON ))
+ PID=$( cat /var/run/ucarp-$IFACE.pid 2>/dev/null )
+ [ -n "$PID" ] && OK=$( echo "$PIDS" | grep "$PID" )
+ if [ -n "$OK" ]; then
+ echo "running"
+ exit 0
+ else
+ echo "not running"
+ exit 1
+ fi
+}
+
+stop () {
+ ebegin "Shutting down ucarp $IFACE"
+ start-stop-daemon --stop --exec $DAEMON \
+ -p /var/run/ucarp-$IFACE.pid
+ eend $?
+}
+