Date: Wed, 26 May 2010 22:20:54 +0200 (CEST) From: Martin Matuska <mm@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Cc: kuriyama@FreeBSD.org Subject: ports/147094: [PATCH] net/relayd: update to 4.3, take maintainership Message-ID: <201005262020.o4QKKsN8058069@neo.vx.sk> Resent-Message-ID: <201005262030.o4QKU8gZ045226@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 147094 >Category: ports >Synopsis: [PATCH] net/relayd: update to 4.3, take maintainership >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Wed May 26 20:30:07 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Martin Matuska >Release: FreeBSD 8.1-PRERELEASE amd64 >Organization: >Environment: System: FreeBSD neo.vx.sk 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #13 r208365M: Fri May 21 21:41:01 CEST >Description: - Update to 4.3 - Take maintainership - Fix serveral serious bugs: 1. Control connection allocation bugfix http://www.mail-archive.com/misc@openbsd.org/msg79451.html Fix: import control.c diff rev. 1.23-1.24 (4.3 fix) and 1.35-1.36 2. "relayctl reload" and a configuration file with syntax errors cause a segfault Fix: import relayd.c diff rev. 1.65-1.66 (4.3 fix) 3. relayd does not cleanup tables and anchors properly on exit Fix: import pfe_filter.c diff rev. 1.23-1.25 and 1.36-1.37 Added file(s): - files/patch-d-control.c - files/patch-d-hce.c - files/pkg-install.in Removed file(s): - pkg-install Port maintainer (kuriyama@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.99 >How-To-Repeat: >Fix: --- relayd-4.3.patch begins here --- Index: Makefile =================================================================== RCS file: /home/pcvs/ports/net/relayd/Makefile,v retrieving revision 1.5 diff -u -r1.5 Makefile --- Makefile 6 Jan 2009 17:59:12 -0000 1.5 +++ Makefile 26 May 2010 20:18:43 -0000 @@ -5,13 +5,11 @@ # $FreeBSD: ports/net/relayd/Makefile,v 1.5 2009/01/06 17:59:12 pav Exp $ PORTNAME= relayd -PORTVERSION= 4.2.20071221 -PORTREVISION= 1 +PORTVERSION= 4.3 CATEGORIES= net -MASTER_SITES= ${MASTER_SITE_LOCAL} -MASTER_SITE_SUBDIR= kuriyama +MASTER_SITES= http://people.freebsd.org/~mm/distfiles/ -MAINTAINER= kuriyama@FreeBSD.org +MAINTAINER= mm@FreeBSD.org COMMENT= OpenBSD Relay Daemon LIB_DEPENDS= event-1.4:${PORTSDIR}/devel/libevent @@ -28,6 +26,11 @@ _MAKE= ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS} RUSER= _relayd RGROUP= _relayd +PKGINSTALL= ${WRKDIR}/pkginstall +SUB_FILES+= pkg-install + +SUB_LIST+= RUSER=${RUSER} \ + RGROUP=${RGROUP} post-extract: ${MKDIR} ${WRKSRC} @@ -44,7 +47,7 @@ (cd ${WRKSRCD}; ${_MAKE} ${ALL_TARGET}) pre-su-install: - @${SETENV} PKG_PREFIX=${PREFIX} RUSER=${RUSER} RGROUP=${RGROUP} \ + @${SETENV} PKG_PREFIX=${PREFIX} \ ${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL do-install: Index: distinfo =================================================================== RCS file: /home/pcvs/ports/net/relayd/distinfo,v retrieving revision 1.1 diff -u -r1.1 distinfo --- distinfo 20 Jan 2008 21:38:25 -0000 1.1 +++ distinfo 26 May 2010 20:18:43 -0000 @@ -1,3 +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 +MD5 (relayd-4.3.tar.gz) = ef1b9754dde65e46b206d36cbf99e77c +SHA256 (relayd-4.3.tar.gz) = c1e8267b53638246859aa825267647491c319a07fa19b9173aeb892833273d68 +SIZE (relayd-4.3.tar.gz) = 88023 Index: pkg-install =================================================================== RCS file: pkg-install diff -N pkg-install --- pkg-install 20 Jan 2008 21:38:25 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,36 +0,0 @@ -#!/bin/sh -# -# $FreeBSD: ports/net/relayd/pkg-install,v 1.1 2008/01/20 21:38:25 kuriyama Exp $ - -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 Index: files/patch-ctl-parser.c =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-ctl-parser.c,v retrieving revision 1.1 diff -u -r1.1 patch-ctl-parser.c --- files/patch-ctl-parser.c 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-ctl-parser.c 26 May 2010 20:18:43 -0000 @@ -1,5 +1,5 @@ ---- relayctl/parser.c.orig Wed May 30 07:41:48 2007 -+++ relayctl/parser.c Mon Jan 7 21:32:16 2008 +--- relayctl/parser.c.orig 2007-12-20 21:15:43.000000000 +0100 ++++ relayctl/parser.c 2010-05-26 21:57:33.759340784 +0200 @@ -18,7 +18,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ @@ -8,14 +8,32 @@ +#include <sys/param.h> #include <sys/socket.h> #include <sys/queue.h> - #include <netinet/in.h> -@@ -118,6 +118,9 @@ - }; + +@@ -124,6 +124,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[]) + { +@@ -157,7 +160,7 @@ + } + + const struct token * +-match_token(const char *word, const struct token table[]) ++match_token(const char *word, const struct token *table) + { + u_int i, match; + const struct token *t = NULL; +@@ -234,7 +237,7 @@ + } + + void +-show_valid_args(const struct token table[]) ++show_valid_args(const struct token *table) + { + int i; + Index: files/patch-ctl-relayctl.c =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-ctl-relayctl.c,v retrieving revision 1.2 diff -u -r1.2 patch-ctl-relayctl.c --- files/patch-ctl-relayctl.c 8 Apr 2008 15:57:29 -0000 1.2 +++ files/patch-ctl-relayctl.c 26 May 2010 20:18:43 -0000 @@ -1,5 +1,5 @@ ---- relayctl/relayctl.c.orig 2007-12-20 21:15:43.000000000 +0100 -+++ relayctl/relayctl.c 2008-03-20 17:15:14.000000000 +0100 +--- relayctl/relayctl.c.orig 2008-01-31 13:12:50.000000000 +0100 ++++ relayctl/relayctl.c 2010-05-26 22:00:11.948860981 +0200 @@ -20,6 +20,7 @@ */ @@ -8,7 +8,24 @@ #include <sys/socket.h> #include <sys/queue.h> #include <sys/un.h> -@@ -297,7 +298,7 @@ +@@ -83,6 +84,7 @@ + }; + + struct imsgbuf *ibuf; ++int error = 0; + + __dead void + usage(void) +@@ -239,7 +241,7 @@ + close(ctl_sock); + free(ibuf); + +- return (0); ++ return (error ? 1 : 0); + } + + struct imsgname * +@@ -297,7 +299,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); @@ -17,7 +34,15 @@ if (imn->type == -1) done = 1; if (imn->func != NULL) -@@ -508,7 +509,7 @@ +@@ -423,6 +425,7 @@ + break; + case IMSG_CTL_FAIL: + printf("command failed\n"); ++ error++; + break; + default: + errx(1, "wrong message in summary: %u", imsg->hdr.type); +@@ -508,7 +511,7 @@ printf("\t%8s\ttotal: %llu sessions\n" "\t%8s\tlast: %u/%us %u/h %u/d sessions\n" "\t%8s\taverage: %u/%us %u/h %u/d sessions\n", Index: files/patch-d-Makefile =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-d-Makefile,v retrieving revision 1.1 diff -u -r1.1 patch-d-Makefile --- files/patch-d-Makefile 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-d-Makefile 26 May 2010 20:18:43 -0000 @@ -1,13 +1,18 @@ ---- 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 +--- relayd/Makefile.orig 2008-02-11 11:42:50.000000000 +0100 ++++ relayd/Makefile 2010-05-26 21:44:14.034705611 +0200 +@@ -3,17 +3,23 @@ + PROG= relayd + SRCS= parse.y log.c control.c buffer.c imsg.c ssl.c ssl_privsep.c \ + relayd.c pfe.c pfe_filter.c hce.c relay.c relay_udp.c \ +- carp.c check_icmp.c check_tcp.c check_script.c name2id.c \ +- snmp.c ++ carp.c check_icmp.c check_tcp.c check_script.c name2id.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${.CURDIR}/../snmpd +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 @@ -15,12 +20,12 @@ -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> Index: files/patch-d-check_tcp.c =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-d-check_tcp.c,v retrieving revision 1.1 diff -u -r1.1 patch-d-check_tcp.c --- files/patch-d-check_tcp.c 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-d-check_tcp.c 26 May 2010 20:18:43 -0000 @@ -1,5 +1,5 @@ ---- 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 +--- relayd/check_tcp.c.orig 2008-03-03 17:58:41.000000000 +0100 ++++ relayd/check_tcp.c 2010-05-26 21:58:57.147236785 +0200 @@ -31,7 +31,7 @@ #include <stdlib.h> #include <errno.h> @@ -9,7 +9,15 @@ #include <openssl/ssl.h> -@@ -285,7 +285,7 @@ +@@ -89,6 +89,7 @@ + } + + cte->host->up = HOST_UP; ++ event_del(&cte->ev); + event_set(&cte->ev, s, EV_TIMEOUT|EV_WRITE, tcp_write, cte); + event_add(&cte->ev, &tv); + return; +@@ -285,7 +286,7 @@ if (b == NULL) fatal("out of memory"); *b = '\0'; @@ -18,7 +26,7 @@ cte->host->up = HOST_UP; return (0); } -@@ -316,7 +316,7 @@ +@@ -316,7 +317,7 @@ fatal("out of memory"); *b = '\0'; @@ -27,7 +35,7 @@ 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 @@ +@@ -363,7 +364,7 @@ fatal("out of memory"); *b = '\0'; @@ -36,7 +44,7 @@ host = cte->host; if ((head = strstr(head, "\r\n\r\n")) == NULL) { log_debug("check_http_digest: %s failed " -@@ -373,7 +373,7 @@ +@@ -373,7 +374,7 @@ } head += strlen("\r\n\r\n"); Index: files/patch-d-control.c =================================================================== RCS file: files/patch-d-control.c diff -N files/patch-d-control.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-d-control.c 26 May 2010 20:18:43 -0000 @@ -0,0 +1,58 @@ +--- relayd/control.c.orig 2008-01-31 10:33:39.000000000 +0100 ++++ relayd/control.c 2010-05-26 21:52:05.399039423 +0200 +@@ -91,6 +91,7 @@ + + session_socket_blockmode(fd, BM_NONBLOCK); + control_state.fd = fd; ++ TAILQ_INIT(&ctl_conns); + + return (0); + } +@@ -141,7 +142,7 @@ + + session_socket_blockmode(connfd, BM_NONBLOCK); + +- if ((c = malloc(sizeof(struct ctl_conn))) == NULL) { ++ if ((c = calloc(1, sizeof(struct ctl_conn))) == NULL) { + close(connfd); + log_warn("control_accept"); + return; +@@ -173,8 +174,10 @@ + { + struct ctl_conn *c; + +- if ((c = control_connbyfd(fd)) == NULL) ++ if ((c = control_connbyfd(fd)) == NULL) { + log_warn("control_close: fd %d: not found", fd); ++ return; ++ } + + msgbuf_clear(&c->ibuf.w); + TAILQ_REMOVE(&ctl_conns, c, entry); +@@ -199,22 +202,18 @@ + return; + } + +- switch (event) { +- case EV_READ: ++ if (event & EV_READ) { + if ((n = imsg_read(&c->ibuf)) == -1 || n == 0) { + control_close(fd); + return; + } +- break; +- case EV_WRITE: ++ } ++ ++ if (event & EV_WRITE) { + if (msgbuf_write(&c->ibuf.w) < 0) { + control_close(fd); + return; + } +- imsg_event_add(&c->ibuf); +- return; +- default: +- fatalx("unknown event"); + } + + for (;;) { Index: files/patch-d-hce.c =================================================================== RCS file: files/patch-d-hce.c diff -N files/patch-d-hce.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-d-hce.c 26 May 2010 20:18:43 -0000 @@ -0,0 +1,23 @@ +--- relayd/hce.c.orig 2010-05-26 21:38:41.927187208 +0200 ++++ relayd/hce.c 2010-05-26 21:39:18.852527924 +0200 +@@ -167,7 +167,9 @@ + struct timeval tv; + struct table *table; + ++#if 0 + snmp_init(env, ibuf_main); ++#endif + + if (!TAILQ_EMPTY(env->sc_tables)) { + evtimer_set(&env->sc_ev, hce_launch_checks, env); +@@ -325,8 +327,10 @@ + print_availability(host->check_cnt, host->up_cnt)); + } + ++#if 0 + if (host->last_up != host->up) + snmp_hosttrap(table, host); ++#endif + + host->last_up = host->up; + } Index: files/patch-d-pfe_filter.c =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-d-pfe_filter.c,v retrieving revision 1.1 diff -u -r1.1 patch-d-pfe_filter.c --- files/patch-d-pfe_filter.c 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-d-pfe_filter.c 26 May 2010 20:18:43 -0000 @@ -1,45 +1,32 @@ ---- 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)) +--- relayd/pfe_filter.c.orig 2008-01-31 10:33:39.000000000 +0100 ++++ relayd/pfe_filter.c 2010-05-26 21:33:25.449102207 +0200 +@@ -121,12 +121,14 @@ + } + + void +-kill_tables(struct relayd *env) { ++kill_tables(struct relayd *env) ++{ + struct pfioc_table io; + struct rdr *rdr; ++ int cnt = 0; + +- memset(&io, 0, sizeof(io)); + TAILQ_FOREACH(rdr, env->sc_rdrs, entry) { ++ memset(&io, 0, sizeof(io)); + if (strlcpy(io.pfrio_table.pfrt_anchor, RELAYD_ANCHOR "/", + sizeof(io.pfrio_table.pfrt_anchor)) >= PF_ANCHOR_NAME_SIZE) + goto toolong; +@@ -134,9 +136,10 @@ + sizeof(io.pfrio_table.pfrt_anchor)) >= PF_ANCHOR_NAME_SIZE) 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 (ioctl(env->sc_pf->dev, DIOCRCLRTABLES, &io) == -1) +- fatal("kill_tables: ioctl faile: ioctl failed"); ++ fatal("kill_tables: ioctl failed"); ++ cnt += io.pfrio_ndel; } - 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); +- log_debug("kill_tables: deleted %d tables", io.pfrio_ndel); ++ log_debug("kill_tables: deleted %d tables", cnt); 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"); + toolong: Index: files/patch-d-relay.c =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-d-relay.c,v retrieving revision 1.1 diff -u -r1.1 patch-d-relay.c --- files/patch-d-relay.c 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-d-relay.c 26 May 2010 20:18:43 -0000 @@ -1,5 +1,5 @@ ---- relayd/relay.c.orig 2007-12-09 05:36:36.000000000 +0900 -+++ relayd/relay.c 2008-01-14 10:26:05.345356528 +0900 +--- relayd/relay.c.orig 2008-03-03 17:41:36.000000000 +0100 ++++ relayd/relay.c 2010-05-26 21:30:14.618289339 +0200 @@ -16,7 +16,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ @@ -9,7 +9,7 @@ #include <sys/queue.h> #include <sys/time.h> #include <sys/stat.h> -@@ -675,6 +675,7 @@ +@@ -662,6 +662,7 @@ &val, sizeof(val)) == -1) goto bad; } @@ -17,7 +17,7 @@ if (proto->tcpflags & (TCPFLAG_SACK|TCPFLAG_NSACK)) { if (proto->tcpflags & TCPFLAG_NSACK) val = 0; -@@ -684,6 +685,7 @@ +@@ -671,6 +672,7 @@ &val, sizeof(val)) == -1) goto bad; } @@ -25,16 +25,17 @@ return (s); -@@ -1000,7 +1002,7 @@ +@@ -987,7 +989,8 @@ } } 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); +- snprintf(ibuf, sizeof(ibuf), "%lu", rlay->rl_conf.timeout.tv_sec); ++ snprintf(ibuf, sizeof(ibuf), "%lu", ++ (unsigned long)rlay->rl_conf.timeout.tv_sec); if (expand_string(buf, len, "$TIMEOUT", ibuf) != 0) return (NULL); } -@@ -1565,7 +1567,7 @@ +@@ -1552,7 +1555,7 @@ switch (type) { case DIGEST_SHA1: case DIGEST_MD5: @@ -43,16 +44,18 @@ relay_close_http(con, 500, "failed to allocate digest", 0); goto fail; -@@ -2469,7 +2471,7 @@ +@@ -2456,8 +2459,8 @@ 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))) +- if (!SSL_CTX_set_session_id_context(ctx, rlay->rl_conf.name, +- strlen(rlay->rl_conf.name))) ++ if (!SSL_CTX_set_session_id_context(ctx, ++ (unsigned char*)rlay->rl_conf.name, strlen(rlay->rl_conf.name))) goto err; -@@ -2849,7 +2851,7 @@ + return (ctx); +@@ -2841,7 +2844,7 @@ if (fstat(fd, &st) != 0) goto fail; size = st.st_size; @@ -61,7 +64,7 @@ goto fail; if (read(fd, buf, size) != size) goto fail; -@@ -2857,7 +2859,7 @@ +@@ -2849,7 +2852,7 @@ close(fd); *len = size + 1; Index: files/patch-d-relayd.c =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-d-relayd.c,v retrieving revision 1.1 diff -u -r1.1 patch-d-relayd.c --- files/patch-d-relayd.c 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-d-relayd.c 26 May 2010 20:18:43 -0000 @@ -1,6 +1,6 @@ ---- 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 @@ +--- relayd/relayd.c.orig 2008-02-13 12:32:59.000000000 +0100 ++++ relayd/relayd.c 2010-05-26 22:01:43.807973211 +0200 +@@ -17,7 +17,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ @@ -9,7 +9,7 @@ #include <sys/queue.h> #include <sys/socket.h> #include <sys/wait.h> -@@ -36,7 +36,7 @@ +@@ -37,7 +37,7 @@ #include <unistd.h> #include <ctype.h> #include <pwd.h> @@ -18,7 +18,115 @@ #include <md5.h> #include <openssl/ssl.h> -@@ -943,7 +943,7 @@ +@@ -574,8 +574,8 @@ + struct ctl_demote demote; + + ibuf = ptr; +- switch (event) { +- case EV_READ: ++ ++ if (event & EV_READ) { + if ((n = imsg_read(ibuf)) == -1) + fatal("imsg_read_error"); + if (n == 0) { +@@ -584,14 +584,13 @@ + event_loopexit(NULL); + return; + } +- break; +- case EV_WRITE: ++ } ++ ++ if (event & EV_WRITE) { + if (msgbuf_write(&ibuf->w) == -1) + fatal("msgbuf_write"); + imsg_event_add(ibuf); + return; +- default: +- fatalx("unknown event"); + } + + for (;;) { +@@ -636,8 +635,8 @@ + + env = relayd_env; + ibuf = ptr; +- switch (event) { +- case EV_READ: ++ ++ if (event & EV_READ) { + if ((n = imsg_read(ibuf)) == -1) + fatal("imsg_read error"); + if (n == 0) { +@@ -646,14 +645,13 @@ + event_loopexit(NULL); + return; + } +- break; +- case EV_WRITE: ++ } ++ ++ if (event & EV_WRITE) { + if (msgbuf_write(&ibuf->w) == -1) + fatal("msgbuf_write"); + imsg_event_add(ibuf); + return; +- default: +- fatalx("unknown event"); + } + + for (;;) { +@@ -673,9 +671,11 @@ + imsg_compose(ibuf_hce, IMSG_SCRIPT, + 0, 0, -1, &scr, sizeof(scr)); + break; ++#if 0 + case IMSG_SNMPSOCK: + (void)snmp_sendsock(ibuf); + break; ++#endif + default: + log_debug("main_dispatch_hce: unexpected imsg %d", + imsg.hdr.type); +@@ -694,8 +694,8 @@ + ssize_t n; + + ibuf = ptr; +- switch (event) { +- case EV_READ: ++ ++ if (event & EV_READ) { + if ((n = imsg_read(ibuf)) == -1) + fatal("imsg_read error"); + if (n == 0) { +@@ -704,14 +704,13 @@ + event_loopexit(NULL); + return; + } +- break; +- case EV_WRITE: ++ } ++ ++ if (event & EV_WRITE) { + if (msgbuf_write(&ibuf->w) == -1) + fatal("msgbuf_write"); + imsg_event_add(ibuf); + return; +- default: +- fatalx("unknown event"); + } + + for (;;) { +@@ -871,7 +870,7 @@ + { + struct timeval tv_next, tv_now, tv; + +- if (gettimeofday(&tv_now, NULL)) ++ if (gettimeofday(&tv_now, NULL) == -1) + fatal("event_again: gettimeofday"); + + bcopy(end, &tv_next, sizeof(tv_next)); +@@ -950,7 +949,7 @@ { switch (type) { case DIGEST_SHA1: Index: files/patch-d-relayd.conf.5 =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-d-relayd.conf.5,v retrieving revision 1.1 diff -u -r1.1 patch-d-relayd.conf.5 --- files/patch-d-relayd.conf.5 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-d-relayd.conf.5 26 May 2010 20:18:43 -0000 @@ -1,5 +1,5 @@ ---- 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 +--- relayd/relayd.conf.5.orig 2008-03-04 00:15:55.000000000 +0100 ++++ relayd/relayd.conf.5 2010-05-26 21:43:22.925137304 +0200 @@ -101,20 +101,7 @@ Here are the settings that can be set globally: .Pp @@ -22,7 +22,24 @@ .Xc Set the interval in seconds at which the hosts will be checked. The default interval is 10 seconds. -@@ -894,7 +881,7 @@ +@@ -147,16 +134,6 @@ + runs 5 relay processes by default and every process will handle + all configured relays. + .Pp +-.It Ic send trap +-Send an SNMP trap when the state of a host changes. +-.Xr relayd 8 +-will try to connect to +-.Xr snmpd 8 +-and request it send a trap to the registered trap receivers; +-see +-.Xr snmpd.conf 5 +-for more information about the configuration. +-.Pp + .It Xo + .Ic timeout Ar number + .Xc +@@ -907,7 +884,7 @@ .El .Sh FILES .Bl -tag -width "/etc/ssl/private/address.keyXX" -compact Index: files/patch-d-relayd.h =================================================================== RCS file: /home/pcvs/ports/net/relayd/files/patch-d-relayd.h,v retrieving revision 1.1 diff -u -r1.1 patch-d-relayd.h --- files/patch-d-relayd.h 20 Jan 2008 21:38:26 -0000 1.1 +++ files/patch-d-relayd.h 26 May 2010 20:18:43 -0000 @@ -1,5 +1,5 @@ ---- relayd/relayd.h.orig 2007-12-21 05:15:43.000000000 +0900 -+++ relayd/relayd.h 2008-01-14 10:02:42.803752108 +0900 +--- relayd/relayd.h.orig 2008-02-13 12:32:59.000000000 +0100 ++++ relayd/relayd.h 2010-05-26 21:38:30.383078551 +0200 @@ -20,7 +20,7 @@ #include <sys/tree.h> @@ -9,9 +9,9 @@ #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 +@@ -64,6 +64,15 @@ + #define DPRINTF(x...) do {} while(0) + #endif +#define SIMPLEQ_HEAD STAILQ_HEAD +#define SIMPLEQ_FIRST STAILQ_FIRST @@ -25,3 +25,13 @@ /* buffer */ struct buf { TAILQ_ENTRY(buf) entry; +@@ -843,7 +852,9 @@ + void pn_unref(u_int16_t); + void pn_ref(u_int16_t); + ++#if 0 + /* snmp.c */ + void snmp_init(struct relayd *, struct imsgbuf *); + int snmp_sendsock(struct imsgbuf *); + void snmp_hosttrap(struct table *, struct host *); ++#endif Index: files/pkg-install.in =================================================================== RCS file: files/pkg-install.in diff -N files/pkg-install.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/pkg-install.in 26 May 2010 20:18:43 -0000 @@ -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 --- relayd-4.3.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005262020.o4QKKsN8058069>