Compare commits
57 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c633991d8 | ||
|
|
ddd2056b32 | ||
|
|
a940a0f63c | ||
|
|
a90c26ed66 | ||
|
|
c102942de2 | ||
|
|
1e6ea6df1f | ||
|
|
45c2bbe93c | ||
|
|
3d0685ad49 | ||
|
|
67176127f7 | ||
|
|
1daec872df | ||
|
|
9bf991c571 | ||
|
|
35e9a36e52 | ||
| ac371a9a0f | |||
|
|
3b54f72524 | ||
|
|
cc1a63916f | ||
|
|
f50886b60c | ||
|
|
175818c8e1 | ||
|
|
de91729541 | ||
|
|
776b2f8823 | ||
|
|
5a1034bcdc | ||
|
|
1f0f5d5b45 | ||
|
|
5a85ed7536 | ||
|
|
d5dcab08e2 | ||
|
305f99180d |
|||
|
|
63773ac56d | ||
|
|
1f9279f886 | ||
|
|
4907124fd3 | ||
|
|
01909a11de | ||
|
|
5c7ce03175 | ||
|
|
97aa08af62 | ||
|
|
b210e49e05 | ||
|
|
31cec7534a | ||
|
|
186d33b8f1 | ||
| e79fe0396b | |||
|
|
f6d89addd0 | ||
|
|
9f67b01cfc | ||
|
|
17028ce880 | ||
|
|
e1f5a53f2e | ||
|
|
35d35131f9 | ||
|
|
ef008cc828 | ||
|
|
9b61e32be3 | ||
|
|
a46ac137b6 | ||
|
|
e53bbcc55b | ||
|
|
d6dd6869c4 | ||
|
|
414ca79f7a | ||
|
|
5b318e1d06 | ||
|
|
30370f7675 | ||
| 563767d618 | |||
|
|
c423aa22b8 | ||
|
|
62d07c579c | ||
| c6a1471c08 | |||
| fd6dcdfb01 | |||
|
|
ac8da6f49e | ||
|
|
eaa85561dc | ||
|
|
7d08fca89e | ||
|
|
4bc0622a55 | ||
|
|
66ced50550 |
12 changed files with 1 additions and 2118 deletions
|
|
@ -1 +0,0 @@
|
|||
ucarp-1.2.tar.bz2
|
||||
21
Makefile
21
Makefile
|
|
@ -1,21 +0,0 @@
|
|||
# Makefile for source rpm: ucarp
|
||||
# $Id$
|
||||
NAME := ucarp
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attept a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
||||
1
dead.package
Normal file
1
dead.package
Normal file
|
|
@ -0,0 +1 @@
|
|||
Dead upstream, old website NSFW
|
||||
1
sources
1
sources
|
|
@ -1 +0,0 @@
|
|||
bed7ae84520f2e0faf3e68e9cfe4e1aa ucarp-1.2.tar.bz2
|
||||
1656
ucarp-1.3-pre.patch
1656
ucarp-1.3-pre.patch
File diff suppressed because it is too large
Load diff
149
ucarp.init
149
ucarp.init
|
|
@ -1,149 +0,0 @@
|
|||
#!/bin/bash
|
||||
# $Id$
|
||||
#
|
||||
# chkconfig: - 91 09
|
||||
# description: Starts and stops the common address redundancy protocol daemon
|
||||
|
||||
# Source function library.
|
||||
. /etc/init.d/functions
|
||||
|
||||
# Source networking configuration.
|
||||
. /etc/sysconfig/network
|
||||
|
||||
# Check that networking is up.
|
||||
[ ${NETWORKING} = "no" ] && exit 0
|
||||
|
||||
get_files() {
|
||||
FILES=`find ${CONFDIR} -maxdepth 1 -type f -name 'vip-*.conf' \
|
||||
-printf "%f\n" | egrep '^vip-[[:digit:]]+\.conf$' | LC_COLLATE="C" sort`
|
||||
}
|
||||
|
||||
prog=$"common address redundancy protocol daemon"
|
||||
OUR_INITLOG_ARGS="-n ucarp -e 2 -s"
|
||||
OUR_INITLOG="initlog ${OUR_INITLOG_ARGS}"
|
||||
CONFDIR=/etc/ucarp
|
||||
UPSCRIPT=${CONFDIR}/vip-up
|
||||
DOWNSCRIPT=${CONFDIR}/vip-down
|
||||
|
||||
start() {
|
||||
RETVAL=-1
|
||||
VIP_RETVAL=0
|
||||
|
||||
echo -n $"Starting ${prog}: "
|
||||
|
||||
get_files
|
||||
|
||||
if [ -z "${FILES}" ]; then
|
||||
failure $"no virtual addresses are configured in ${CONFDIR}:"
|
||||
RETVAL=1
|
||||
else
|
||||
for FILE in ${FILES}; do
|
||||
# Check that the file name gives us an ID between 1 and 255
|
||||
ID=`echo ${FILE}| sed 's/^vip-\(.*\).conf/\1/'`
|
||||
if [ ${ID} -lt 1 -o ${ID} -gt 255 ]; then
|
||||
${OUR_INITLOG} $"ID out of range (1-255) for ${FILE}, skipped VIP ID ${ID}:"
|
||||
continue
|
||||
fi
|
||||
|
||||
unset PASSWORD BIND_INTERFACE BIND_ADDRESS VIP OPTIONS
|
||||
# Source ucarp settings
|
||||
. ${CONFDIR}/${FILE}
|
||||
TMP_RETVAL=0
|
||||
|
||||
if [ -z "${PASSWORD}" ]; then
|
||||
${OUR_INITLOG} $"no PASSWORD found in ${FILE}, skipped VIP ID ${ID}:"
|
||||
TMP_RETVAL=1
|
||||
fi
|
||||
if [ -z "${BIND_ADDRESS}" ]; then
|
||||
${OUR_INITLOG} $"no BIND_ADDRESS found in ${FILE}, skipped VIP ID ${ID}:"
|
||||
TMP_RETVAL=1
|
||||
fi
|
||||
if [ -z "${VIP_ADDRESS}" ]; then
|
||||
${OUR_INITLOG} $"no VIP_ADDRESS found in ${FILE}, skipped VIP ID ${ID}:"
|
||||
TMP_RETVAL=1
|
||||
fi
|
||||
|
||||
# If one of more of the above failed, skip the daemon launch
|
||||
if [ ${TMP_RETVAL} -ne 0 ]; then
|
||||
VIP_RETVAL=1
|
||||
continue
|
||||
fi
|
||||
|
||||
[ ${RETVAL} -eq -1 ] && RETVAL=0
|
||||
daemon /usr/sbin/ucarp -v ${ID} -m ${ID} -p ${PASSWORD} -s ${BIND_ADDRESS} -a ${VIP_ADDRESS} -i ${BIND_INTERFACE} ${OPTIONS} -B --upscript=$UPSCRIPT --downscript=$DOWNSCRIPT >/dev/null
|
||||
LAUNCH_RETVAL=$?
|
||||
[ ${LAUNCH_RETVAL} -ne 0 ] && RETVAL=1
|
||||
done
|
||||
|
||||
# failure/success or warning if launch worked with some vip errors
|
||||
if [ ${RETVAL} -eq 0 -a ${VIP_RETVAL} -eq 0 ]; then
|
||||
success $"all ucarp configurations were applied successfully:"
|
||||
touch /var/lock/subsys/ucarp
|
||||
elif [ ${RETVAL} -eq 0 -a ${VIP_RETVAL} -eq 1 ]; then
|
||||
warning $"error in one or more of the ucarp configurations:"
|
||||
else
|
||||
failure $"error running one or more of the ucarp daemon instances:"
|
||||
fi
|
||||
fi
|
||||
echo
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc /usr/sbin/ucarp >/dev/null
|
||||
RETVAL=$?
|
||||
|
||||
# We unassign all UCARP-managed VIPs when stopping the service
|
||||
# to avoid conflicting "leftovers".
|
||||
|
||||
get_files
|
||||
|
||||
[ ! -z "${FILES}" ] && \
|
||||
for FILE in ${FILES}; do
|
||||
ID=`echo ${FILE}| sed 's/^vip-\(.*\).conf/\1/'`
|
||||
unset PASSWORD BIND_INTERFACE BIND_ADDRESS VIP OPTIONS
|
||||
# Source ucarp settings
|
||||
. ${CONFDIR}/${FILE}
|
||||
$DOWNSCRIPT $BIND_INTERFACE $VIP_ADDRESS ${ID} &>/dev/null
|
||||
#TMP_RETVAL=$?
|
||||
#[ ${TMP_RETVAL} -ne 0 ] && VIP_RETVAL=1
|
||||
done
|
||||
|
||||
# failure/success (no warning, too complicated to handle properly)
|
||||
if [ ${RETVAL} -eq 1 ]; then
|
||||
failure $"it seems like no ucarp daemon were running:"
|
||||
else
|
||||
success $"all ucarp daemons stopped and IP addresses unassigned:"
|
||||
rm -f /var/lock/subsys/ucarp
|
||||
fi
|
||||
echo
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
condrestart)
|
||||
if [ -f /var/lock/subsys/ucarp ]; then
|
||||
stop
|
||||
start
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
status /usr/sbin/ucarp
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $RETVAL
|
||||
|
||||
152
ucarp.spec
152
ucarp.spec
|
|
@ -1,152 +0,0 @@
|
|||
Summary: Common Address Redundancy Protocol (CARP) for Unix
|
||||
Name: ucarp
|
||||
Version: 1.2
|
||||
Release: 7%{?dist}
|
||||
License: BSD
|
||||
Group: System Environment/Daemons
|
||||
URL: http://www.ucarp.org/
|
||||
Source0: http://download.pureftpd.org/pub/ucarp/ucarp-%{version}.tar.bz2
|
||||
Source1: ucarp.init
|
||||
Source2: vip-001.conf.example
|
||||
Source3: vip-001.list.example
|
||||
Source4: vip-up
|
||||
Source5: vip-down
|
||||
Source6: vip-helper.sh
|
||||
Patch0: ucarp-1.3-pre.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||
Requires(post): /sbin/chkconfig
|
||||
Requires(preun): /sbin/chkconfig, /sbin/service
|
||||
Requires(postun): /sbin/service
|
||||
BuildRequires: gettext
|
||||
BuildRequires: autoconf, automake, libtool
|
||||
BuildRequires: libpcap-devel
|
||||
|
||||
%description
|
||||
UCARP allows a couple of hosts to share common virtual IP addresses in order
|
||||
to provide automatic failover. It is a portable userland implementation of the
|
||||
secure and patent-free Common Address Redundancy Protocol (CARP, OpenBSD's
|
||||
alternative to the patents-bloated VRRP).
|
||||
Strong points of the CARP protocol are: very low overhead, cryptographically
|
||||
signed messages, interoperability between different operating systems and no
|
||||
need for any dedicated extra network link between redundant hosts.
|
||||
|
||||
|
||||
%prep
|
||||
%setup
|
||||
%patch -p1
|
||||
|
||||
|
||||
%build
|
||||
%configure
|
||||
%{__make} %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
%{__rm} -rf %{buildroot}
|
||||
%{__make} install DESTDIR=%{buildroot}
|
||||
%find_lang %{name}
|
||||
|
||||
# Install the init script
|
||||
%{__install} -D -p -m 0755 %{SOURCE1} \
|
||||
%{buildroot}/etc/rc.d/init.d/ucarp
|
||||
|
||||
%{__mkdir_p} %{buildroot}/etc/ucarp
|
||||
|
||||
# Install the example config files
|
||||
%{__install} -D -p -m 0600 %{SOURCE2} %{SOURCE3} \
|
||||
%{buildroot}/etc/ucarp/
|
||||
|
||||
# Install helper scripts
|
||||
%{__install} -D -p -m 0700 %{SOURCE4} %{SOURCE5} %{SOURCE6} \
|
||||
%{buildroot}/etc/ucarp/
|
||||
|
||||
|
||||
%clean
|
||||
%{__rm} -rf %{buildroot}
|
||||
|
||||
|
||||
%pre
|
||||
# Legacy, in case we update from an older package where the service was "carp"
|
||||
if [ -f /etc/rc.d/init.d/carp ]; then
|
||||
/sbin/service carp stop &>/dev/null || :
|
||||
/sbin/chkconfig --del carp
|
||||
fi
|
||||
|
||||
%post
|
||||
/sbin/chkconfig --add ucarp
|
||||
|
||||
%preun
|
||||
if [ $1 -eq 0 ]; then
|
||||
/sbin/service ucarp stop &>/dev/null || :
|
||||
/sbin/chkconfig --del ucarp
|
||||
fi
|
||||
|
||||
%postun
|
||||
if [ $1 -ge 1 ]; then
|
||||
/sbin/service ucarp condrestart &>/dev/null || :
|
||||
fi
|
||||
|
||||
|
||||
%files -f %{name}.lang
|
||||
%defattr(-, root, root, 0755)
|
||||
%doc AUTHORS COPYING ChangeLog NEWS README
|
||||
/etc/rc.d/init.d/ucarp
|
||||
%attr(0700, root, root) %dir /etc/ucarp/
|
||||
/etc/ucarp/vip-001.conf.example
|
||||
/etc/ucarp/vip-001.list.example
|
||||
/etc/ucarp/vip-up
|
||||
/etc/ucarp/vip-down
|
||||
/etc/ucarp/vip-helper.sh
|
||||
%{_sbindir}/ucarp
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Feb 2 2007 Matthias Saou <http://freshrpms.net/> 1.2-7
|
||||
- Rename service from carp to ucarp, to be more consistent.
|
||||
- Move /etc/sysconfig/carp to /etc/ucarp since it has become a config directory
|
||||
of its own.
|
||||
|
||||
* Wed Nov 29 2006 Matthias Saou <http://freshrpms.net/> 1.2-6
|
||||
- Rebuild against new libpcap.
|
||||
|
||||
* Mon Nov 13 2006 Matthias Saou <http://freshrpms.net/> 1.2-5
|
||||
- Include all improvements from Denis Ovsienko (#200395).
|
||||
|
||||
* Mon Aug 28 2006 Matthias Saou <http://freshrpms.net/> 1.2-4
|
||||
- FC6 rebuild.
|
||||
|
||||
* Tue Aug 22 2006 Matthias Saou <http://freshrpms.net/> 1.2-3
|
||||
- Update to 1.3 snapshot, which includes the ARP fix, as well as fixes for the
|
||||
segfaults reported in #200400 and #201596.
|
||||
- Add autoconf, automake and libtool build reqs for the 1.3 patch.
|
||||
|
||||
* Thu Jul 27 2006 Matthias Saou <http://freshrpms.net/> 1.2-3
|
||||
- Fix init script for recent find versions (#200395).
|
||||
|
||||
* Thu Jun 22 2006 Matthias Saou <http://freshrpms.net/> 1.2-2
|
||||
- Include ARP patch backported from 1.3 snapshot (#196095).
|
||||
- Make libpcap build requirement conditional to be able to share spec file.
|
||||
|
||||
* Wed Jun 21 2006 Matthias Saou <http://freshrpms.net/> 1.2-1
|
||||
- Update to 1.2.
|
||||
- BuildRequire libpcap-devel instead of libpcap now that it has been split.
|
||||
|
||||
* Mon Mar 6 2006 Matthias Saou <http://freshrpms.net/> 1.1-5
|
||||
- FC5 rebuild.
|
||||
|
||||
* Thu Feb 9 2006 Matthias Saou <http://freshrpms.net/> 1.1-4
|
||||
- Rebuild for new gcc/glibc.
|
||||
|
||||
* Thu Nov 17 2005 Matthias Saou <http://freshrpms.net/> 1.1-3
|
||||
- Rebuild against new libpcap library.
|
||||
|
||||
* Fri Apr 1 2005 Michael Schwendt <mschwendt[AT]users.sf.net> - 1.1-2
|
||||
- Add %%dir entry for /etc/sysconfig/carp directory.
|
||||
|
||||
* Thu Jan 13 2005 Matthias Saou <http://freshrpms.net/> 1.1-1
|
||||
- Update to 1.1.
|
||||
- Update source location.
|
||||
|
||||
* Fri Jul 9 2004 Matthias Saou <http://freshrpms.net/> 1.0-1
|
||||
- Initial RPM release.
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
# Virtual IP configuration file for UCARP
|
||||
# The number (from 001 to 255) in the name of the file is the identifier
|
||||
# $Id: vip-001.conf.example,v 1.3 2006/11/29 12:00:11 thias Exp $
|
||||
|
||||
# Set the same password on all machines sharing the same virtual router ID.
|
||||
PASSWORD="love"
|
||||
|
||||
# UCARP daemon by default uses the first PCAP-capable interface as returned by
|
||||
# pcap_lookupdev(), this is often "eth0". This option allows you to change
|
||||
# this behaviour.
|
||||
BIND_INTERFACE="eth0"
|
||||
|
||||
# This is a mandatory option. UCARP daemon will use this IP address for its
|
||||
# announces regardless of the addresses actually assigned to the interface.
|
||||
#BIND_ADDRESS="10.0.0.2"
|
||||
|
||||
# There is a simple and an advanced way to configure UCARP. In both ways you
|
||||
# have two physical routers with distinct IP addresses on the same IP network.
|
||||
|
||||
# In the simple scenario, you want a single virtual IP address from the _same_
|
||||
# network to be taken over by one of the routers. You configure this VIP right
|
||||
# here then:
|
||||
#VIP_ADDRESS="10.10.10.10"
|
||||
|
||||
# In the complex scenario, your virtual router consists of more than one IP
|
||||
# address. For example, you might want to assign to the virtual router not only
|
||||
# the address which is used as the default gateway on the LAN, but also the only
|
||||
# real IP address, which you got from your ISP. Your configuration would have
|
||||
# two steps then:
|
||||
# 1. Configure the VIP_ADDRESS to "255.255.255.255"
|
||||
# 2. Create a file in the same directory which holds vip-XXX.conf, with a name
|
||||
# vip-XXX.list. For example, if the .conf file is named vip-001.conf, the .list
|
||||
# file would be vip-001.list. Each meaningful line of this file will be used as
|
||||
# an argument for "ip address add" and "ip address del" commands. This way you
|
||||
# can control, which IP addresses will be assigned to which interfaces.
|
||||
#VIP_ADDRESS="255.255.255.255"
|
||||
|
||||
# If you have extra options to add, see "ucarp --help" output
|
||||
# (the lower the "-k <val>" the higher priority and "-P" to become master ASAP)
|
||||
# Please note you can use only the following options here:
|
||||
# --preempt (-P): becomes a master as soon as possible
|
||||
# --neutral (-n): don't run downscript at start if backup
|
||||
# --advbase=<seconds> (-b <seconds>): advertisement frequency
|
||||
# --advskew=<skew> (-k <skew>): advertisement skew (0-255)
|
||||
# The rest of options list is built up by the UCARP initscript.
|
||||
|
||||
OPTIONS="-k 128 -P"
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
# Comments are filtered out automatically...
|
||||
10.0.0.254/24 dev eth0
|
||||
|
||||
# ... and empty lines too.
|
||||
192.168.1.254/24 dev eth1
|
||||
|
||||
# You can assign as many VIPs to a single virtual router, as you need.
|
||||
172.16.2.32/24 dev eth2
|
||||
172.16.3.67/24 dev eth2
|
||||
172.16.4.88/24 dev eth2
|
||||
|
||||
26
vip-down
26
vip-down
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "This script is intended to be run by the UCARP daemon."
|
||||
echo "Usage: $0 <network interface> <IP address> <anything>"
|
||||
echo "Usage: $0 <anything> <255.255.255.255> <virtual router ID>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ $# -eq 3 ] || usage
|
||||
|
||||
case $2 in
|
||||
255.255.255.255)
|
||||
# New-style invocation. Process the the list of addresses
|
||||
# specific to this virtual router.
|
||||
MYDIR=`dirname $0`
|
||||
$MYDIR/vip-helper.sh $3 del
|
||||
;;
|
||||
*)
|
||||
# Old-style invocation. Just add a single address to the same
|
||||
# interface UCARP daemon is working on.
|
||||
ip address del $2/32 dev $1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "This script is intended to be invoked by vip-up.sh or vip-down.sh"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ $# -eq 2 ] || usage
|
||||
|
||||
VRID=$1
|
||||
OP=$2
|
||||
MYDIR=`dirname $0`
|
||||
|
||||
if [ "$VRID" -lt "1" -o "$VRID" -gt 255 ]; then
|
||||
echo "VRID must be in the 1 to 255 range."
|
||||
exit 2
|
||||
fi
|
||||
|
||||
LISTFILE="$MYDIR/vip-$VRID.list"
|
||||
if ! [ -s "$LISTFILE" ]; then
|
||||
echo "$LISTFILE is missing or empty, no action taken."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
egrep ^[^#] $LISTFILE | sed -e 's/^ *\(.*\) *$/\1/' \
|
||||
| xargs --max-lines=1 ip address $OP &>/dev/null
|
||||
|
||||
26
vip-up
26
vip-up
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "This script is intended to be run by the UCARP daemon."
|
||||
echo "Usage: $0 <network interface> <IP address> <anything>"
|
||||
echo "Usage: $0 <anything> <255.255.255.255> <virtual router ID>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ $# -eq 3 ] || usage
|
||||
|
||||
case $2 in
|
||||
255.255.255.255)
|
||||
# New-style invocation. Process the the list of addresses
|
||||
# specific to this virtual router.
|
||||
MYDIR=`dirname $0`
|
||||
$MYDIR/vip-helper.sh $3 add
|
||||
;;
|
||||
*)
|
||||
# Old-style invocation. Just add a single address to the same
|
||||
# interface the UCARP daemon is working on.
|
||||
ip address add $2/32 dev $1
|
||||
;;
|
||||
esac
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue