mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-20 08:27:15 +00:00
OpenBSD's Relay Daemon (previously known as hoststated).
relayd is a daemon to relay and dynamically redirect incoming connections to a target host. Its main purposes are to run as a load-balancer, application layer gateway, or transparent proxy. The daemon is able to monitor groups of hosts for availability, which is determined by checking for a specific service common to a host group. WWW: http://spootnik.org/relayd/ # This port will work on $OSVERSION >= 700049. # If you want to use on RELENG_6, apply a patch in # http://www.openbsd.org/cgi-bin/cvsweb/src/sys/net/pf_table.c.diff?r1=1.67&r2=1.68
This commit is contained in:
parent
c0a00dff9a
commit
304acfbef8
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=205894
@ -753,6 +753,7 @@
|
||||
SUBDIR += recvnet
|
||||
SUBDIR += redir
|
||||
SUBDIR += relay
|
||||
SUBDIR += relayd
|
||||
SUBDIR += remotedesk
|
||||
SUBDIR += repeater
|
||||
SUBDIR += rexx-sock
|
||||
|
62
net/relayd/Makefile
Normal file
62
net/relayd/Makefile
Normal file
@ -0,0 +1,62 @@
|
||||
# New ports collection makefile for: relayd
|
||||
# Date created: 5 Jun 2007
|
||||
# Whom: Jun Kuriyama <kuriyama@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= relayd
|
||||
PORTVERSION= 4.2.20071221
|
||||
CATEGORIES= net
|
||||
MASTER_SITES= ${MASTER_SITE_LOCAL}
|
||||
MASTER_SITE_SUBDIR= kuriyama
|
||||
|
||||
MAINTAINER= kuriyama@FreeBSD.org
|
||||
COMMENT= OpenBSD Relay Daemon
|
||||
|
||||
LIB_DEPENDS= event:${PORTSDIR}/devel/libevent
|
||||
|
||||
WRKSRC= ${WRKDIR}/tmp
|
||||
MAN5= relayd.conf.5
|
||||
MAN8= relayctl.8 relayd.8
|
||||
USE_RC_SUBR= relayd
|
||||
|
||||
CFLAGS+= -I${PREFIX}/include
|
||||
|
||||
WRKSRCC= ${WRKDIR}/tmp/relayctl
|
||||
WRKSRCD= ${WRKDIR}/tmp/relayd
|
||||
_MAKE= ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS}
|
||||
RUSER= _relayd
|
||||
RGROUP= _relayd
|
||||
|
||||
post-extract:
|
||||
${MKDIR} ${WRKSRC}
|
||||
${MV} ${WRKDIR}/relayctl ${WRKSRC}/
|
||||
${MV} ${WRKDIR}/relayd ${WRKSRC}/
|
||||
|
||||
pre-build:
|
||||
${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
|
||||
${WRKSRCD}/relayd.h \
|
||||
${WRKSRCD}/relayd.conf.5 ${WRKSRCD}/relayd.8
|
||||
|
||||
do-build:
|
||||
(cd ${WRKSRCC}; ${_MAKE} ${ALL_TARGET})
|
||||
(cd ${WRKSRCD}; ${_MAKE} ${ALL_TARGET})
|
||||
|
||||
pre-su-install:
|
||||
@${SETENV} PKG_PREFIX=${PREFIX} RUSER=${RUSER} RGROUP=${RGROUP} \
|
||||
${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL
|
||||
|
||||
do-install:
|
||||
(cd ${WRKSRCC}; ${_MAKE} ${INSTALL_TARGET} install-man)
|
||||
(cd ${WRKSRCD}; ${_MAKE} ${INSTALL_TARGET} install-man)
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${OSVERSION} < 502106
|
||||
IGNORE= is of no use for you because your system is too old and doesn't have pf
|
||||
.endif
|
||||
.if (${OSVERSION} < 700049) && !defined(I_KNOW_WHAT_I_AM_DOING)
|
||||
IGNORE= needs a patched kernel to work correctly (http://www.openbsd.org/cgi-bin/cvsweb/src/sys/net/pf_table.c.diff?r1=1.67&r2=1.68)
|
||||
.endif
|
||||
|
||||
.include <bsd.port.post.mk>
|
3
net/relayd/distinfo
Normal file
3
net/relayd/distinfo
Normal file
@ -0,0 +1,3 @@
|
||||
MD5 (relayd-4.2.20071221.tar.gz) = 3e6060c3228f2427d4dc3f3740cd4b15
|
||||
SHA256 (relayd-4.2.20071221.tar.gz) = e92d777408e87e9c60d5a439affddc6c2ea005fcb116ced937f3ce977e9b3d0d
|
||||
SIZE (relayd-4.2.20071221.tar.gz) = 84150
|
20
net/relayd/files/patch-ctl-Makefile
Normal file
20
net/relayd/files/patch-ctl-Makefile
Normal file
@ -0,0 +1,20 @@
|
||||
--- relayctl/Makefile.orig Tue Jan 9 09:45:32 2007
|
||||
+++ relayctl/Makefile Wed Jun 6 18:58:57 2007
|
||||
@@ -8,9 +8,16 @@
|
||||
MAN= relayctl.8
|
||||
|
||||
CFLAGS+= -Wall -Werror -I${.CURDIR} -I${.CURDIR}/../relayd
|
||||
+CFLAGS+= -I${PREFIX}/include -D__dead=''
|
||||
CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
|
||||
CFLAGS+= -Wmissing-declarations
|
||||
CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
|
||||
-CFLAGS+= -Wsign-compare -Wbounded
|
||||
+CFLAGS+= -Wsign-compare
|
||||
+
|
||||
+install:
|
||||
+ $(INSTALL) -m 555 -g wheel -o root relayctl $(PREFIX)/sbin
|
||||
+
|
||||
+install-man:
|
||||
+ $(INSTALL) -o root -g wheel -m 444 relayctl.8 $(PREFIX)/man/man8
|
||||
|
||||
.include <bsd.prog.mk>
|
21
net/relayd/files/patch-ctl-parser.c
Normal file
21
net/relayd/files/patch-ctl-parser.c
Normal file
@ -0,0 +1,21 @@
|
||||
--- relayctl/parser.c.orig Wed May 30 07:41:48 2007
|
||||
+++ relayctl/parser.c Mon Jan 7 21:32:16 2008
|
||||
@@ -18,7 +18,7 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
-#include <sys/types.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/queue.h>
|
||||
#include <netinet/in.h>
|
||||
@@ -118,6 +118,9 @@
|
||||
};
|
||||
|
||||
static struct parse_result res;
|
||||
+
|
||||
+const struct token *match_token(const char *, const struct token []);
|
||||
+void show_valid_args(const struct token []);
|
||||
|
||||
struct parse_result *
|
||||
parse(int argc, char *argv[])
|
8
net/relayd/files/patch-ctl-parser.h
Normal file
8
net/relayd/files/patch-ctl-parser.h
Normal file
@ -0,0 +1,8 @@
|
||||
--- relayctl/parser.h.orig Wed Jun 6 18:25:59 2007
|
||||
+++ relayctl/parser.h Wed Jun 6 18:27:58 2007
|
||||
@@ -38,5 +38,3 @@
|
||||
};
|
||||
|
||||
struct parse_result *parse(int, char *[]);
|
||||
-const struct token *match_token(const char *, const struct token []);
|
||||
-void show_valid_args(const struct token []);
|
19
net/relayd/files/patch-ctl-relayctl.c
Normal file
19
net/relayd/files/patch-ctl-relayctl.c
Normal file
@ -0,0 +1,19 @@
|
||||
--- relayctl/relayctl.c.orig Thu Feb 22 14:59:13 2007
|
||||
+++ relayctl/relayctl.c Fri Jun 8 13:00:53 2007
|
||||
@@ -20,6 +20,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/queue.h>
|
||||
#include <sys/un.h>
|
||||
@@ -286,7 +287,7 @@
|
||||
imn = monitor_lookup(imsg->hdr.type);
|
||||
printf("%s: imsg type %u len %u peerid %u pid %d\n", imn->name,
|
||||
imsg->hdr.type, imsg->hdr.len, imsg->hdr.peerid, imsg->hdr.pid);
|
||||
- printf("\ttimestamp: %u, %s", now, ctime(&now));
|
||||
+ printf("\ttimestamp: %lu, %s", (unsigned long)now, ctime(&now));
|
||||
if (imn->type == -1)
|
||||
done = 1;
|
||||
if (imn->func != NULL)
|
26
net/relayd/files/patch-d-Makefile
Normal file
26
net/relayd/files/patch-d-Makefile
Normal file
@ -0,0 +1,26 @@
|
||||
--- relayd/Makefile.orig Tue Feb 27 04:35:43 2007
|
||||
+++ relayd/Makefile Tue Jun 5 20:57:45 2007
|
||||
@@ -6,13 +6,20 @@
|
||||
check_icmp.c check_tcp.c relay.c carp.c
|
||||
MAN= relayd.8 relayd.conf.5
|
||||
|
||||
-LDADD= -levent -lssl -lcrypto
|
||||
+LDADD= -lmd -L${PREFIX}/lib -levent -lssl -lcrypto
|
||||
DPADD= ${LIBEVENT} ${LIBSSL} ${LIBCRYPTO}
|
||||
-CFLAGS+= -Wall -I${.CURDIR}
|
||||
+CFLAGS+= -Wall -I${.CURDIR} -I${PREFIX}/include -D__dead='' -DSHA1_DIGEST_LENGTH=SHA_DIGEST_LENGTH -DSHA1_DIGEST_STRING_LENGTH=SHA_DIGEST_LENGTH -DOPENSSL_NO_SHA -DOPENSSL_NO_MD5
|
||||
CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
|
||||
CFLAGS+= -Wmissing-declarations
|
||||
CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
|
||||
-CFLAGS+= -Wsign-compare -Wbounded
|
||||
+CFLAGS+= -Wsign-compare
|
||||
CLEANFILES+= y.tab.h
|
||||
+
|
||||
+install:
|
||||
+ $(INSTALL) -m 555 -g wheel -o root relayd $(PREFIX)/sbin
|
||||
+
|
||||
+install-man:
|
||||
+ $(INSTALL) -m 444 -g wheel -o root relayd.conf.5 $(PREFIX)/man/man5
|
||||
+ $(INSTALL) -m 444 -g wheel -o root relayd.8 $(PREFIX)/man/man8
|
||||
|
||||
.include <bsd.prog.mk>
|
44
net/relayd/files/patch-d-carp.c
Normal file
44
net/relayd/files/patch-d-carp.c
Normal file
@ -0,0 +1,44 @@
|
||||
--- relayd/carp.c.orig 2007-12-08 02:17:00.000000000 +0900
|
||||
+++ relayd/carp.c 2008-01-14 08:43:07.745281030 +0900
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <sys/param.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
+#include <sys/queue.h>
|
||||
|
||||
#include <net/if.h>
|
||||
|
||||
@@ -105,6 +106,7 @@
|
||||
int
|
||||
carp_demote_get(char *group)
|
||||
{
|
||||
+#if 0
|
||||
int s;
|
||||
struct ifgroupreq ifgr;
|
||||
|
||||
@@ -131,6 +133,9 @@
|
||||
|
||||
close(s);
|
||||
return ((int)ifgr.ifgr_attrib.ifg_carp_demoted);
|
||||
+#else
|
||||
+ return (-1);
|
||||
+#endif
|
||||
}
|
||||
|
||||
int
|
||||
@@ -188,6 +193,7 @@
|
||||
int
|
||||
carp_demote_ioctl(char *group, int demote)
|
||||
{
|
||||
+#if 0
|
||||
int s, res;
|
||||
struct ifgroupreq ifgr;
|
||||
|
||||
@@ -214,4 +220,7 @@
|
||||
|
||||
close(s);
|
||||
return (res);
|
||||
+#else
|
||||
+ return (-1);
|
||||
+#endif
|
||||
}
|
11
net/relayd/files/patch-d-check_icmp.c
Normal file
11
net/relayd/files/patch-d-check_icmp.c
Normal file
@ -0,0 +1,11 @@
|
||||
--- relayd/check_icmp.c.orig 2008-01-14 10:10:32.881133017 +0900
|
||||
+++ relayd/check_icmp.c 2008-01-14 10:10:45.169385174 +0900
|
||||
@@ -16,7 +16,7 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
-#include <sys/types.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/queue.h>
|
||||
#include <sys/socket.h>
|
||||
|
47
net/relayd/files/patch-d-check_tcp.c
Normal file
47
net/relayd/files/patch-d-check_tcp.c
Normal file
@ -0,0 +1,47 @@
|
||||
--- relayd/check_tcp.c.orig 2007-12-08 02:17:00.000000000 +0900
|
||||
+++ relayd/check_tcp.c 2008-01-14 16:47:41.131892553 +0900
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <fnmatch.h>
|
||||
-#include <sha1.h>
|
||||
+#include <sha.h>
|
||||
|
||||
#include <openssl/ssl.h>
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
if (b == NULL)
|
||||
fatal("out of memory");
|
||||
*b = '\0';
|
||||
- if (fnmatch(cte->table->conf.exbuf, cte->buf->buf, 0) == 0) {
|
||||
+ if (fnmatch(cte->table->conf.exbuf, (char *)cte->buf->buf, 0) == 0) {
|
||||
cte->host->up = HOST_UP;
|
||||
return (0);
|
||||
}
|
||||
@@ -316,7 +316,7 @@
|
||||
fatal("out of memory");
|
||||
*b = '\0';
|
||||
|
||||
- head = cte->buf->buf;
|
||||
+ head = (char *)cte->buf->buf;
|
||||
host = cte->host;
|
||||
if (strncmp(head, "HTTP/1.1 ", strlen("HTTP/1.1 ")) &&
|
||||
strncmp(head, "HTTP/1.0 ", strlen("HTTP/1.0 "))) {
|
||||
@@ -363,7 +363,7 @@
|
||||
fatal("out of memory");
|
||||
*b = '\0';
|
||||
|
||||
- head = cte->buf->buf;
|
||||
+ head = (char *)cte->buf->buf;
|
||||
host = cte->host;
|
||||
if ((head = strstr(head, "\r\n\r\n")) == NULL) {
|
||||
log_debug("check_http_digest: %s failed "
|
||||
@@ -373,7 +373,7 @@
|
||||
}
|
||||
head += strlen("\r\n\r\n");
|
||||
|
||||
- digeststr(cte->table->conf.digest_type, head, strlen(head), digest);
|
||||
+ digeststr(cte->table->conf.digest_type, (u_int8_t*)head, strlen(head), digest);
|
||||
|
||||
if (strcmp(cte->table->conf.digest, digest)) {
|
||||
log_warnx("check_http_digest: %s failed "
|
11
net/relayd/files/patch-d-log.c
Normal file
11
net/relayd/files/patch-d-log.c
Normal file
@ -0,0 +1,11 @@
|
||||
--- relayd/log.c.orig 2008-01-14 09:59:27.825621568 +0900
|
||||
+++ relayd/log.c 2008-01-14 09:59:36.888069516 +0900
|
||||
@@ -16,7 +16,7 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
-#include <sys/types.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/queue.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/tree.h>
|
11
net/relayd/files/patch-d-parse.y
Normal file
11
net/relayd/files/patch-d-parse.y
Normal file
@ -0,0 +1,11 @@
|
||||
--- relayd/parse.y.orig Tue Jun 5 20:12:20 2007
|
||||
+++ relayd/parse.y Tue Jun 5 20:12:51 2007
|
||||
@@ -1561,7 +1561,7 @@
|
||||
hints.ai_family = PF_UNSPEC;
|
||||
hints.ai_socktype = SOCK_DGRAM; /* DUMMY */
|
||||
error = getaddrinfo(s, NULL, &hints, &res0);
|
||||
- if (error == EAI_AGAIN || error == EAI_NODATA || error == EAI_NONAME)
|
||||
+ if (error == EAI_AGAIN || error == EAI_NONAME)
|
||||
return (0);
|
||||
if (error) {
|
||||
log_warnx("host_dns: could not parse \"%s\": %s", s,
|
10
net/relayd/files/patch-d-pfe.c
Normal file
10
net/relayd/files/patch-d-pfe.c
Normal file
@ -0,0 +1,10 @@
|
||||
--- relayd/pfe.c.orig 2008-01-14 10:06:37.013495830 +0900
|
||||
+++ relayd/pfe.c 2008-01-14 10:06:47.508856711 +0900
|
||||
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
+#include <sys/queue.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
45
net/relayd/files/patch-d-pfe_filter.c
Normal file
45
net/relayd/files/patch-d-pfe_filter.c
Normal file
@ -0,0 +1,45 @@
|
||||
--- relayd/pfe_filter.c.orig 2007-12-21 05:15:43.000000000 +0900
|
||||
+++ relayd/pfe_filter.c 2008-01-20 15:31:28.856798863 +0900
|
||||
@@ -89,6 +89,7 @@
|
||||
sizeof(tables[i].pfrt_name))
|
||||
goto toolong;
|
||||
tables[i].pfrt_flags |= PFR_TFLAG_PERSIST;
|
||||
+ log_debug("init_tables: prepare anchor \"%s\" and table \"%s\"", tables[i].pfrt_anchor, tables[i].pfrt_name);
|
||||
i++;
|
||||
}
|
||||
if (i != env->rdrcount)
|
||||
@@ -239,10 +240,15 @@
|
||||
sizeof(io.pfrio_table.pfrt_name)) >=
|
||||
sizeof(io.pfrio_table.pfrt_name))
|
||||
goto toolong;
|
||||
+ /* pfctl -Tflush */
|
||||
if (ioctl(env->pf->dev, DIOCRCLRADDRS, &io) == -1)
|
||||
fatal("flush_table: cannot flush table addresses");
|
||||
+ /* pfctl -Tzero */
|
||||
+#if 0
|
||||
+ /* XXX: ioctl(DIOCRCLRTSTATS) requires io.pfrio_esize to be set as sizeof(struct pfr_table), but here doesn't set it. */
|
||||
if (ioctl(env->pf->dev, DIOCRCLRTSTATS, &io) == -1)
|
||||
fatal("flush_table: cannot flush table stats");
|
||||
+#endif
|
||||
log_debug("flush_table: flushed table %s", rdr->conf.name);
|
||||
return;
|
||||
|
||||
@@ -321,7 +327,9 @@
|
||||
rio.rule.dst.addr.type = PF_ADDR_ADDRMASK;
|
||||
rio.rule.dst.port_op = PF_OP_EQ;
|
||||
rio.rule.dst.port[0] = address->port;
|
||||
+#if 0
|
||||
rio.rule.rtableid = -1; /* stay in the main routing table */
|
||||
+#endif
|
||||
rio.rule.action = PF_RDR;
|
||||
if (strlen(rdr->conf.tag))
|
||||
(void)strlcpy(rio.rule.tagname, rdr->conf.tag,
|
||||
@@ -362,7 +370,7 @@
|
||||
|
||||
if (ioctl(env->pf->dev, DIOCADDRULE, &rio) == -1)
|
||||
fatal("cannot add rule");
|
||||
- log_debug("sync_ruleset: rule added");
|
||||
+ log_debug("sync_ruleset: rule added into anchor \"%s\", table \"%s\"", rio.anchor, pio.addr.addr.v.tblname);
|
||||
}
|
||||
if (transaction_commit(env) == -1)
|
||||
log_warn("sync_ruleset: add rules transaction failed");
|
72
net/relayd/files/patch-d-relay.c
Normal file
72
net/relayd/files/patch-d-relay.c
Normal file
@ -0,0 +1,72 @@
|
||||
--- relayd/relay.c.orig 2007-12-09 05:36:36.000000000 +0900
|
||||
+++ relayd/relay.c 2008-01-14 10:26:05.345356528 +0900
|
||||
@@ -16,7 +16,7 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
-#include <sys/types.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/queue.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/stat.h>
|
||||
@@ -675,6 +675,7 @@
|
||||
&val, sizeof(val)) == -1)
|
||||
goto bad;
|
||||
}
|
||||
+#if 0
|
||||
if (proto->tcpflags & (TCPFLAG_SACK|TCPFLAG_NSACK)) {
|
||||
if (proto->tcpflags & TCPFLAG_NSACK)
|
||||
val = 0;
|
||||
@@ -684,6 +685,7 @@
|
||||
&val, sizeof(val)) == -1)
|
||||
goto bad;
|
||||
}
|
||||
+#endif
|
||||
|
||||
return (s);
|
||||
|
||||
@@ -1000,7 +1002,7 @@
|
||||
}
|
||||
}
|
||||
if (strstr(val, "$TIMEOUT") != NULL) {
|
||||
- snprintf(ibuf, sizeof(ibuf), "%lu", rlay->conf.timeout.tv_sec);
|
||||
+ snprintf(ibuf, sizeof(ibuf), "%lu", (unsigned long)rlay->conf.timeout.tv_sec);
|
||||
if (expand_string(buf, len, "$TIMEOUT", ibuf) != 0)
|
||||
return (NULL);
|
||||
}
|
||||
@@ -1565,7 +1567,7 @@
|
||||
switch (type) {
|
||||
case DIGEST_SHA1:
|
||||
case DIGEST_MD5:
|
||||
- if ((md = digeststr(type, val, strlen(val), NULL)) == NULL) {
|
||||
+ if ((md = digeststr(type, (u_int8_t*)val, strlen(val), NULL)) == NULL) {
|
||||
relay_close_http(con, 500,
|
||||
"failed to allocate digest", 0);
|
||||
goto fail;
|
||||
@@ -2469,7 +2471,7 @@
|
||||
goto err;
|
||||
|
||||
/* Set session context to the local relay name */
|
||||
- if (!SSL_CTX_set_session_id_context(ctx, rlay->conf.name,
|
||||
+ if (!SSL_CTX_set_session_id_context(ctx, (unsigned char*)rlay->conf.name,
|
||||
strlen(rlay->conf.name)))
|
||||
goto err;
|
||||
|
||||
@@ -2849,7 +2851,7 @@
|
||||
if (fstat(fd, &st) != 0)
|
||||
goto fail;
|
||||
size = st.st_size;
|
||||
- if ((buf = (char *)calloc(1, size + 1)) == NULL)
|
||||
+ if ((buf = (u_int8_t *)calloc(1, size + 1)) == NULL)
|
||||
goto fail;
|
||||
if (read(fd, buf, size) != size)
|
||||
goto fail;
|
||||
@@ -2857,7 +2859,7 @@
|
||||
close(fd);
|
||||
|
||||
*len = size + 1;
|
||||
- return (buf);
|
||||
+ return (char *)(buf);
|
||||
|
||||
fail:
|
||||
if (buf != NULL)
|
11
net/relayd/files/patch-d-relay_udp.c
Normal file
11
net/relayd/files/patch-d-relay_udp.c
Normal file
@ -0,0 +1,11 @@
|
||||
--- relayd/relay_udp.c.orig 2008-01-14 10:09:08.345280942 +0900
|
||||
+++ relayd/relay_udp.c 2008-01-14 10:09:21.665469901 +0900
|
||||
@@ -16,7 +16,7 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
-#include <sys/types.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/queue.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/stat.h>
|
20
net/relayd/files/patch-d-relayd.8
Normal file
20
net/relayd/files/patch-d-relayd.8
Normal file
@ -0,0 +1,20 @@
|
||||
--- relayd/relayd.8.orig 2007-12-12 23:55:12.000000000 +0900
|
||||
+++ relayd/relayd.8 2008-01-14 08:47:34.673073391 +0900
|
||||
@@ -116,7 +116,7 @@
|
||||
.It Fl f Ar file
|
||||
Specify an alternative configuration file.
|
||||
The default is
|
||||
-.Pa /etc/relayd.conf .
|
||||
+.Pa %%PREFIX%%/etc/relayd.conf .
|
||||
.It Fl n
|
||||
Configtest mode.
|
||||
Only check the configuration file for validity.
|
||||
@@ -125,7 +125,7 @@
|
||||
.El
|
||||
.Sh FILES
|
||||
.Bl -tag -width "/var/run/relayd.sockXX" -compact
|
||||
-.It /etc/relayd.conf
|
||||
+.It %%PREFIX%%/etc/relayd.conf
|
||||
Default configuration file.
|
||||
.It /var/run/relayd.sock
|
||||
Unix-domain socket used for communication with
|
29
net/relayd/files/patch-d-relayd.c
Normal file
29
net/relayd/files/patch-d-relayd.c
Normal file
@ -0,0 +1,29 @@
|
||||
--- relayd/relayd.c.orig 2008-01-14 10:00:21.487354557 +0900
|
||||
+++ relayd/relayd.c 2008-01-14 16:44:45.705572691 +0900
|
||||
@@ -16,7 +16,7 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
-#include <sys/types.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/queue.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/wait.h>
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
#include <pwd.h>
|
||||
-#include <sha1.h>
|
||||
+#include <sha.h>
|
||||
#include <md5.h>
|
||||
|
||||
#include <openssl/ssl.h>
|
||||
@@ -943,7 +943,7 @@
|
||||
{
|
||||
switch (type) {
|
||||
case DIGEST_SHA1:
|
||||
- return (SHA1Data(data, len, buf));
|
||||
+ return (SHA1_Data(data, len, buf));
|
||||
break;
|
||||
case DIGEST_MD5:
|
||||
return (MD5Data(data, len, buf));
|
33
net/relayd/files/patch-d-relayd.conf.5
Normal file
33
net/relayd/files/patch-d-relayd.conf.5
Normal file
@ -0,0 +1,33 @@
|
||||
--- relayd/relayd.conf.5.orig 2007-12-12 23:55:12.000000000 +0900
|
||||
+++ relayd/relayd.conf.5 2008-01-14 08:49:46.404074048 +0900
|
||||
@@ -101,20 +101,7 @@
|
||||
Here are the settings that can be set globally:
|
||||
.Pp
|
||||
.Bl -tag -width Ds -compact
|
||||
-.It Ic demote Ar group
|
||||
-Enable the global
|
||||
-.Xr carp 4
|
||||
-demotion option, resetting the carp demotion counter for the
|
||||
-specified interface group to zero on startup and to 128 on shutdown of
|
||||
-the daemon.
|
||||
-For more information on interface groups,
|
||||
-see the
|
||||
-.Ic group
|
||||
-keyword in
|
||||
-.Xr ifconfig 8 .
|
||||
-.Pp
|
||||
-.It Xo
|
||||
-.Ic interval Ar number
|
||||
+.It Ic interval Ar number
|
||||
.Xc
|
||||
Set the interval in seconds at which the hosts will be checked.
|
||||
The default interval is 10 seconds.
|
||||
@@ -894,7 +881,7 @@
|
||||
.El
|
||||
.Sh FILES
|
||||
.Bl -tag -width "/etc/ssl/private/address.keyXX" -compact
|
||||
-.It Pa /etc/relayd.conf
|
||||
+.It Pa %%PREFIX%%/etc/relayd.conf
|
||||
.Xr relayd 8
|
||||
configuration file.
|
||||
.Pp
|
27
net/relayd/files/patch-d-relayd.h
Normal file
27
net/relayd/files/patch-d-relayd.h
Normal file
@ -0,0 +1,27 @@
|
||||
--- relayd/relayd.h.orig 2007-12-21 05:15:43.000000000 +0900
|
||||
+++ relayd/relayd.h 2008-01-14 10:02:42.803752108 +0900
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#include <sys/tree.h>
|
||||
|
||||
-#define CONF_FILE "/etc/relayd.conf"
|
||||
+#define CONF_FILE "%%PREFIX%%/etc/relayd.conf"
|
||||
#define RELAYD_SOCKET "/var/run/relayd.sock"
|
||||
#define PF_SOCKET "/dev/pf"
|
||||
#define RELAYD_USER "_relayd"
|
||||
@@ -56,6 +56,15 @@
|
||||
#define PURGE_PROTOS 0x08
|
||||
#define PURGE_EVERYTHING 0xff
|
||||
|
||||
+#define SIMPLEQ_HEAD STAILQ_HEAD
|
||||
+#define SIMPLEQ_FIRST STAILQ_FIRST
|
||||
+#define SIMPLEQ_REMOVE_HEAD STAILQ_REMOVE_HEAD
|
||||
+#define SIMPLEQ_ENTRY STAILQ_ENTRY
|
||||
+#define SIMPLEQ_INIT STAILQ_INIT
|
||||
+#define SIMPLEQ_EMPTY STAILQ_EMPTY
|
||||
+#define SIMPLEQ_NEXT STAILQ_NEXT
|
||||
+#define SIMPLEQ_INSERT_TAIL STAILQ_INSERT_TAIL
|
||||
+
|
||||
/* buffer */
|
||||
struct buf {
|
||||
TAILQ_ENTRY(buf) entry;
|
27
net/relayd/files/relayd.in
Normal file
27
net/relayd/files/relayd.in
Normal file
@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# PROVIDE: relayd
|
||||
# REQUIRE: LOGIN
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# relayd_enable (bool):
|
||||
#
|
||||
# relayd_flags:
|
||||
#
|
||||
|
||||
. %%RC_SUBR%%
|
||||
|
||||
name=relayd
|
||||
rcvar=${name}_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
: ${relayd_enable="NO"}
|
||||
: ${relayd_flags=""}
|
||||
|
||||
command="%%PREFIX%%/sbin/relayd"
|
||||
command_args="${relayd_flags}"
|
||||
|
||||
run_rc_command "$1"
|
7
net/relayd/pkg-descr
Normal file
7
net/relayd/pkg-descr
Normal file
@ -0,0 +1,7 @@
|
||||
relayd is a daemon to relay and dynamically redirect incoming
|
||||
connections to a target host. Its main purposes are to run as a
|
||||
load-balancer, application layer gateway, or transparent proxy. The
|
||||
daemon is able to monitor groups of hosts for availability, which is
|
||||
determined by checking for a specific service common to a host group.
|
||||
|
||||
WWW: http://spootnik.org/relayd/
|
36
net/relayd/pkg-install
Normal file
36
net/relayd/pkg-install
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
|
||||
case $2 in
|
||||
PRE-INSTALL)
|
||||
USER=${RUSER}
|
||||
GROUP=${RGROUP}
|
||||
UID=913
|
||||
GID=913
|
||||
|
||||
if pw group show "${GROUP}" 2>/dev/null; then
|
||||
echo "You already have a group \"${GROUP}\", so I will use it."
|
||||
else
|
||||
if pw groupadd ${GROUP} -g ${GID}; then
|
||||
echo "Added group \"${GROUP}\"."
|
||||
else
|
||||
echo "Adding group \"${GROUP}\" failed..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if pw user show "${USER}" 2>/dev/null; then
|
||||
echo "You already have a user \"${USER}\", so I will use it."
|
||||
else
|
||||
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
|
||||
-d /var/empty -c "Relay Daemon" -s /usr/sbin/nologin
|
||||
then
|
||||
echo "Added user \"${USER}\"."
|
||||
else
|
||||
echo "Adding user \"${USER}\" failed..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
3
net/relayd/pkg-plist
Normal file
3
net/relayd/pkg-plist
Normal file
@ -0,0 +1,3 @@
|
||||
sbin/relayctl
|
||||
sbin/relayd
|
||||
@unexec echo "Warning: If you will *NOT* use this package anymore, please remove the _relayd user manually."
|
Loading…
Reference in New Issue
Block a user