summaryrefslogtreecommitdiff
path: root/net/loadd
diff options
context:
space:
mode:
authorNorikatsu Shigemura <nork@FreeBSD.org>2002-05-16 10:26:39 +0000
committerNorikatsu Shigemura <nork@FreeBSD.org>2002-05-16 10:26:39 +0000
commit833c9d2bebd8cee334b9665349418d96db166a40 (patch)
treeaa871d2eec897b27ca026ec8d05d403aacd8139e /net/loadd
parentAdd new ports. (diff)
Add new ports.
PR: ports/37661 Submitted by: Alex Dupre <sysadmin@alexdupre.com> Approved by: knu (mentor)
Diffstat (limited to 'net/loadd')
-rw-r--r--net/loadd/Makefile42
-rw-r--r--net/loadd/distinfo1
-rw-r--r--net/loadd/files/010.loadd.sh35
-rw-r--r--net/loadd/files/patch-Makefile29
-rw-r--r--net/loadd/files/patch-define.h11
-rw-r--r--net/loadd/files/patch-main.c11
-rw-r--r--net/loadd/pkg-comment1
-rw-r--r--net/loadd/pkg-descr23
-rw-r--r--net/loadd/pkg-message.in14
-rw-r--r--net/loadd/pkg-plist8
10 files changed, 175 insertions, 0 deletions
diff --git a/net/loadd/Makefile b/net/loadd/Makefile
new file mode 100644
index 000000000000..8b1ad2dff701
--- /dev/null
+++ b/net/loadd/Makefile
@@ -0,0 +1,42 @@
+# New ports collection makefile for: loadd
+# Date created: Thu May 2 11:20:06 CET 2002
+# Whom: Alex Dupre <sysadmin@alexdupre.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= loadd
+PORTVERSION= 0.8
+CATEGORIES= net sysutils
+MASTER_SITES= http://www.bsdshell.net/download/
+
+MAINTAINER= sysadmin@alexdupre.com
+
+LIB_DEPENDS= glib12.3:${PORTSDIR}/devel/glib12
+
+DOCS= INSTALL LICENSE README TODO
+PKGMESSAGE= ${WRKDIR}/pkg-message
+
+MAKE_ENV+= CPPFLAGS="-DPREFIX=\\\"${PREFIX}\\\""
+MAKE_ENV+= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" PTHREAD_LIBS="${PTHREAD_LIBS}"
+
+post-build:
+ @${SED} 's,%%PREFIX%%,${PREFIX},g' ${.CURDIR}/pkg-message.in \
+ > ${WRKDIR}/pkg-message
+
+do-install:
+ @${ECHO_CMD} "Installing files..."
+ @${INSTALL_PROGRAM} ${WRKSRC}/loadd ${PREFIX}/libexec/
+ @${INSTALL_SCRIPT} ${FILESDIR}/010.loadd.sh ${PREFIX}/etc/rc.d/
+ @${INSTALL_DATA} ${WRKSRC}/loadd.conf ${PREFIX}/etc/loadd.conf.sample
+ @${CAT} ${PKGMESSAGE}
+
+.if !defined(NOPORTDOCS)
+post-install:
+ @${MKDIR} ${DOCSDIR}
+.for f in ${DOCS}
+ @${INSTALL_DATA} ${WRKSRC}/${f} ${DOCSDIR}
+.endfor
+.endif
+
+.include <bsd.port.mk>
diff --git a/net/loadd/distinfo b/net/loadd/distinfo
new file mode 100644
index 000000000000..6d3a6b79d283
--- /dev/null
+++ b/net/loadd/distinfo
@@ -0,0 +1 @@
+MD5 (loadd-0.8.tar.gz) = c6cca2534bd987c4ef408033ebf1a0bd
diff --git a/net/loadd/files/010.loadd.sh b/net/loadd/files/010.loadd.sh
new file mode 100644
index 000000000000..a20c4440d37b
--- /dev/null
+++ b/net/loadd/files/010.loadd.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${0##*/}\$"); then
+ echo "$0: Cannot determine the PREFIX" >&2
+ exit 64
+fi
+
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+case "$1" in
+start)
+ case ${loadd_enable:-NO} in
+ [Yy][Ee][Ss])
+ [ -f ${PREFIX}/etc/loadd.conf && ${loadd_program:-${PREFIX}/libexec/loadd} ${loadd_flags:--d} && echo -n ' loadd'
+ ;;
+ esac
+ ;;
+stop)
+ case ${loadd_enable:-NO} in
+ [Yy][Ee][Ss])
+ [ -f ${PREFIX}/etc/loadd.conf ] && /usr/bin/killall loadd && echo -n ' loadd'
+ ;;
+ esac
+ ;;
+*)
+ echo "Usage: `basename $0` {start|stop}" >&2
+ ;;
+esac
+
+exit 0
diff --git a/net/loadd/files/patch-Makefile b/net/loadd/files/patch-Makefile
new file mode 100644
index 000000000000..4e80c30e23ec
--- /dev/null
+++ b/net/loadd/files/patch-Makefile
@@ -0,0 +1,29 @@
+--- Makefile.orig Mon Nov 26 07:44:48 2001
++++ Makefile Tue May 14 14:55:55 2002
+@@ -3,18 +3,21 @@
+
+ SRCS=main.c socket.c icmp.c conf.c threads.c network.c aliasing.c tri.c
+ OBJS=${SRCS:.c=.o}
+-OPTS=-pthread -pipe -Wall -ansi -O2 -march=pentiumpro -fomit-frame-pointer -ffast-math
++OPTS=${CFLAGS} ${CPPFLAGS} -Wall -ansi
+ #DEBUG=-DDEBUG -DDEBUGALIAS #-DDEBUGHASHTABLE
+ #DEBUG=-DDEBUGMONITOR
+-DEFINE=-D_THREAD_SAFE -D_REENTRANT
+-LIBS=-L/usr/local/lib `glib12-config --libs`
++DEFINE=${PTHREAD_CFLAGS}
++LIBS=-L${PREFIX}/lib `glib12-config --libs` ${PTHREAD_LIBS}
+ INCLUDE=`glib12-config --cflags`
++CC?=cc
++
++all: loadd
+
+ loadd: ${OBJS}
+- gcc ${INCLUDE} ${DEFINE} ${DEBUG} ${OPTS} ${OBJS} -o loadd ${LIBS}
++ ${CC} ${INCLUDE} ${DEFINE} ${DEBUG} ${OPTS} ${OBJS} -o loadd ${LIBS}
+
+ .c.o: ${SRCS}
+- gcc ${INCLUDE} ${DEFINE} ${DEBUG} ${OPTS} -c $<
++ ${CC} ${INCLUDE} ${DEFINE} ${DEBUG} ${OPTS} -c $<
+
+ clean:
+ rm -rf ${OBJS} loadd *.core *~
diff --git a/net/loadd/files/patch-define.h b/net/loadd/files/patch-define.h
new file mode 100644
index 000000000000..8e8351247e59
--- /dev/null
+++ b/net/loadd/files/patch-define.h
@@ -0,0 +1,11 @@
+--- define.h.orig Tue Oct 2 22:43:20 2001
++++ define.h Tue May 14 14:45:36 2002
+@@ -5,7 +5,7 @@
+ #define MONITORINGPORT 8670 /* En UDP */
+ #define PINGINTERVAL 60000000
+ #define REFRESHTIMEOUT 1
+-#define CONFFILE "/usr/local/etc/loadd2.conf"
++#define CONFFILE PREFIX "/etc/loadd.conf"
+ #define CALC_CHECKSUM(acc, cksum) { \
+ acc += cksum; \
+ if (acc < 0) \
diff --git a/net/loadd/files/patch-main.c b/net/loadd/files/patch-main.c
new file mode 100644
index 000000000000..8a5be982437d
--- /dev/null
+++ b/net/loadd/files/patch-main.c
@@ -0,0 +1,11 @@
+--- main.c.orig Mon Nov 26 05:59:19 2001
++++ main.c Tue May 14 14:46:25 2002
+@@ -270,7 +270,7 @@
+ break;
+ }
+ if (! *conffile)
+- strncpy(conffile, "/usr/local/etc/loadd.conf", sizeof(conffile) - 1);
++ strncpy(conffile, PREFIX "/etc/loadd.conf", sizeof(conffile) - 1);
+ argc -= optind;
+ argv += optind;
+ ht = loadd_main_init(conffile);
diff --git a/net/loadd/pkg-comment b/net/loadd/pkg-comment
new file mode 100644
index 000000000000..660ee4493631
--- /dev/null
+++ b/net/loadd/pkg-comment
@@ -0,0 +1 @@
+A Load Balancing Daemon
diff --git a/net/loadd/pkg-descr b/net/loadd/pkg-descr
new file mode 100644
index 000000000000..6ee2b4888599
--- /dev/null
+++ b/net/loadd/pkg-descr
@@ -0,0 +1,23 @@
+loadd is a daemon that communicate with ipfw Firewall via the DIVERT
+sockets. You can easily configure a divert rule on your firewall and
+redirect packets you want into the loadd system. Loadd check the
+destination service and do a NAT on packets if the service must be
+load balance. For choosing a host, loadd apply an algorithm that you
+can configure.
+
+For this first release, two algorithms are available
+and you can found this features:
+
+* Round-Robbin Algorithm (Very simple)
+* Intelligence Load Sharing (Balancing with realtime load, work with
+ lmd client on real servers)
+* TCP supported (not UDP yet)
+* Support multiples IP services (except SSL for the moment)
+* Choose of IP aliasing
+* Choose of port number to Load Balance
+* Multiple daemons support on the same host without conflict
+
+WWW: http://www.bsdshell.net/hut_loadd.html
+
+- Alex Dupre
+sysadmin@alexdupre.com
diff --git a/net/loadd/pkg-message.in b/net/loadd/pkg-message.in
new file mode 100644
index 000000000000..33b24963f4f4
--- /dev/null
+++ b/net/loadd/pkg-message.in
@@ -0,0 +1,14 @@
+#######################################################################
+ Please modify the configuration file %%PREFIX%%/etc/loadd.conf
+ before launching %%PREFIX%%/libexec/loadd
+ don't forget to recompile your kernel with DIVERT and
+ IPFIREWALL options. Don't forget to specify a rule in the ipfw
+ firewall like natd: ipfw add divert 8670 tcp from any to any
+ 8670 is the default port, you can choose a different port by
+ running loadd with -p option like
+ %%PREFIX%%/libexec/loadd -p 8671
+ ipfw add divert 8671 tcp from any to any
+ !! IMPORTANT !! There is no support for UDP at this time.
+ You cannot use loadsharing method (broken) use intlloadsharing
+ insteed and don't forget to launch lmd on server(s) to load balance
+#######################################################################
diff --git a/net/loadd/pkg-plist b/net/loadd/pkg-plist
new file mode 100644
index 000000000000..87b92dc89b22
--- /dev/null
+++ b/net/loadd/pkg-plist
@@ -0,0 +1,8 @@
+libexec/loadd
+etc/loadd.conf.sample
+etc/rc.d/010.loadd.sh
+%%PORTDOCS%%share/doc/loadd/TODO
+%%PORTDOCS%%share/doc/loadd/README
+%%PORTDOCS%%share/doc/loadd/INSTALL
+%%PORTDOCS%%share/doc/loadd/LICENSE
+%%PORTDOCS%%@dirrm share/doc/loadd