mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-28 05:29:48 +00:00
Update to 4.7
PR: ports/148242 Submitted by: Jim Riggs <ports@christianserving.org>
This commit is contained in:
parent
e4448606b8
commit
206bbc8bff
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=257730
@ -6,25 +6,34 @@
|
||||
#
|
||||
|
||||
PORTNAME= ifstated
|
||||
PORTVERSION= 3.7
|
||||
PORTVERSION= 4.7
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= net
|
||||
MASTER_SITES= http://www.atarininja.org/~wxs/distfiles/ \
|
||||
http://www.pkix.net/mirror/f2o.org/ifstated/
|
||||
MASTER_SITES= http://christianserving.org/ports/net/ifstated/
|
||||
|
||||
MAINTAINER= skreuzer@FreeBSD.org
|
||||
COMMENT= Interface State daemon
|
||||
MAINTAINER= ports@christianserving.org
|
||||
COMMENT= Interface state daemon
|
||||
|
||||
INSTALL_TARGET= install install-man
|
||||
LIB_DEPENDS= event:${PORTSDIR}/devel/libevent
|
||||
|
||||
MAN5= ifstated.conf.5
|
||||
MAN8= ifstated.8
|
||||
|
||||
PLIST_FILES= sbin/ifstated etc/ifstated.conf
|
||||
PLIST_FILES= etc/ifstated.conf-sample \
|
||||
sbin/ifstated
|
||||
SUB_FILES= pkg-message
|
||||
|
||||
USE_RC_SUBR= ifstated
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/ifstated.c ${WRKSRC}/ifstated.8
|
||||
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/Makefile
|
||||
@${REINPLACE_CMD} -e 's|/etc/|${PREFIX}/etc/|g' ${WRKSRC}/ifstated.c ${WRKSRC}/ifstated.8 ${WRKSRC}/ifstated.conf.5
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/ifstated ${PREFIX}/sbin
|
||||
${INSTALL_DATA} ${WRKSRC}/ifstated.conf-sample ${PREFIX}/etc
|
||||
${INSTALL_MAN} ${WRKSRC}/ifstated.conf.5 ${PREFIX}/man/man5
|
||||
${INSTALL_MAN} ${WRKSRC}/ifstated.8 ${PREFIX}/man/man8
|
||||
|
||||
post-install:
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
|
@ -1,3 +1,3 @@
|
||||
MD5 (ifstated-3.7.tar.gz) = 3c399ea13e546c9bbf2ba5e844b5728b
|
||||
SHA256 (ifstated-3.7.tar.gz) = e4bdd5d53c13daa4fa8936165c5522fe22c4a63a3c59c2c965ccc423aa91deaf
|
||||
SIZE (ifstated-3.7.tar.gz) = 12374
|
||||
MD5 (ifstated-4.7.tar.gz) = bd94a19e1d94923615573ed6f4aa2107
|
||||
SHA256 (ifstated-4.7.tar.gz) = 68381cc577f4f323f90477c1a9bb090a369c3dd098d5baf5175c20941961a7af
|
||||
SIZE (ifstated-4.7.tar.gz) = 15057
|
||||
|
@ -1,24 +1,11 @@
|
||||
--- ../ifstated-20050505.orig/Makefile Thu May 5 11:51:24 2005
|
||||
+++ Makefile Thu May 5 12:06:07 2005
|
||||
@@ -1,4 +1,5 @@
|
||||
# $OpenBSD: Makefile,v 1.4 2004/12/14 10:24:15 mpf Exp $
|
||||
+# $Id: Makefile,v 1.5 2005/05/05 16:06:07 mdg Exp $
|
||||
|
||||
PROG= ifstated
|
||||
SRCS= ifstated.c parse.y
|
||||
@@ -8,6 +9,14 @@
|
||||
--- Makefile.orig 2010-06-11 12:20:08.000000000 -0500
|
||||
+++ Makefile 2010-06-15 15:42:27.893424629 -0500
|
||||
@@ -6,6 +6,8 @@
|
||||
CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
|
||||
CFLAGS+= -Wmissing-declarations -Wredundant-decls
|
||||
CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
|
||||
+CFLAGS+= -I%%LOCALBASE%%/include
|
||||
+LDFLAGS+= -L%%LOCALBASE%%/lib
|
||||
YFLAGS=
|
||||
MAN= ifstated.8
|
||||
-LDADD+=-lutil -levent
|
||||
+
|
||||
+
|
||||
+install:
|
||||
+ $(INSTALL) -m 555 -g bin -o bin ifstated $(PREFIX)/sbin
|
||||
+ $(INSTALL) -m 644 -g wheel -o root etc/ifstated.conf $(PREFIX)/etc
|
||||
+
|
||||
+install-man:
|
||||
+ $(INSTALL) -m 444 -g bin -o bin ifstated.8 $(PREFIX)/man/man8
|
||||
+
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
MAN= ifstated.8 ifstated.conf.5
|
||||
LDADD+=-levent
|
||||
|
@ -1,34 +0,0 @@
|
||||
--- ../ifstated-20050505.orig/etc/ifstated.conf Thu May 5 11:51:24 2005
|
||||
+++ etc/ifstated.conf Thu May 5 12:06:08 2005
|
||||
@@ -1,4 +1,5 @@
|
||||
# $OpenBSD: ifstated.conf,v 1.6 2005/02/07 06:08:10 david Exp $
|
||||
+# $Id: ifstated.conf,v 1.3 2005/05/05 16:06:08 mdg Exp $
|
||||
# This is a sample config for a pair of firewalls with two interfaces
|
||||
#
|
||||
# carp0 and carp1 have ip addresses on 192.168.3.0/24 and 192.168.6.0/24
|
||||
@@ -7,7 +8,7 @@
|
||||
# net.inet.carp.preempt must be enabled (set to 1) for this to work correctly.
|
||||
|
||||
# Uncomment one of the following lines to force primary/backup status.
|
||||
-# init-state primary
|
||||
+init-state primary
|
||||
# init-state backup
|
||||
|
||||
carp_up = "carp0.link.up && carp1.link.up"
|
||||
@@ -18,12 +19,12 @@
|
||||
# The "net" addresses are other addresses which can be used to determine
|
||||
# whether we have connectivity. Make sure the hosts are always up, or
|
||||
# test multiple ip's, 'or'-ing the tests.
|
||||
-net = '( "ping -q -c 1 -w 1 192.168.6.8 > /dev/null" every 10 && \
|
||||
- "ping -q -c 1 -w 1 192.168.3.8 > /dev/null" every 10)'
|
||||
+net = '( "ping -q -c 1 -t 1 192.168.6.8 > /dev/null" every 10 && \
|
||||
+ "ping -q -c 1 -t 1 192.168.3.8 > /dev/null" every 10)'
|
||||
|
||||
# The peer addresses below are the real ip addresses of the OTHER firewall
|
||||
-peer = '( "ping -q -c 1 -w 1 192.168.6.7 > /dev/null" every 10 && \
|
||||
- "ping -q -c 1 -w 1 192.168.3.7 > /dev/null" every 10)'
|
||||
+peer = '( "ping -q -c 1 -t 1 192.168.6.7 > /dev/null" every 10 && \
|
||||
+ "ping -q -c 1 -t 1 192.168.3.7 > /dev/null" every 10)'
|
||||
|
||||
state auto {
|
||||
if $carp_up
|
@ -1,17 +0,0 @@
|
||||
--- ../ifstated-20050505.orig/ifstated.8 Thu May 5 11:51:24 2005
|
||||
+++ ifstated.8 Thu May 5 12:06:07 2005
|
||||
@@ -1,4 +1,5 @@
|
||||
.\" $OpenBSD: ifstated.8,v 1.5 2004/09/27 22:26:26 jaredy Exp $
|
||||
+.\" $Id: ifstated.8,v 1.4 2005/05/05 16:06:07 mdg Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Ryan McBride <mcbride@openbsd.org>
|
||||
.\"
|
||||
@@ -79,7 +80,7 @@
|
||||
reloads the configuration file.
|
||||
.Sh FILES
|
||||
.Bl -tag -width "/etc/ifstated.conf" -compact
|
||||
-.It Pa /etc/ifstated.conf
|
||||
+.It Pa %%PREFIX%%/etc/ifstated.conf
|
||||
.Nm
|
||||
configuration file.
|
||||
.El
|
@ -1,267 +1,59 @@
|
||||
--- ifstated.c-orig Fri Apr 6 09:04:30 2007
|
||||
+++ ifstated.c Fri Apr 6 09:05:30 2007
|
||||
@@ -1,4 +1,5 @@
|
||||
/* $OpenBSD: ifstated.c,v 1.21 2005/02/07 12:38:44 mcbride Exp $ */
|
||||
+/* $Id: ifstated.c,v 1.3 2005/05/05 16:06:07 mdg Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004 Marco Pfatschbacher <mpf@openbsd.org>
|
||||
@@ -23,12 +24,15 @@
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
+#include <sys/event.h>
|
||||
--- ifstated.c.orig 2010-06-11 12:20:08.000000000 -0500
|
||||
+++ ifstated.c 2010-06-15 13:49:50.785704080 -0500
|
||||
@@ -26,9 +26,11 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/wait.h>
|
||||
+#include <sys/sysctl.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <net/if.h>
|
||||
+#include <net/if_mib.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
@@ -38,8 +42,6 @@
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <err.h>
|
||||
-#include <event.h>
|
||||
-#include <util.h>
|
||||
#include <unistd.h>
|
||||
#include <syslog.h>
|
||||
#include <stdarg.h>
|
||||
@@ -47,20 +49,22 @@
|
||||
|
||||
#include "ifstated.h"
|
||||
|
||||
+#define MAX_TIMERS 100
|
||||
+
|
||||
struct ifsd_config *conf = NULL, *newconf = NULL;
|
||||
|
||||
int opts = 0;
|
||||
int opt_debug = 0;
|
||||
int opt_inhibit = 0;
|
||||
-char *configfile = "/etc/ifstated.conf";
|
||||
-struct event rt_msg_ev, sighup_ev, startup_ev, sigchld_ev;
|
||||
+char *configfile = "%%PREFIX%%/etc/ifstated.conf";
|
||||
+int kq;
|
||||
+struct kevent kev;
|
||||
|
||||
-void startup_handler(int, short, void *);
|
||||
-void sighup_handler(int, short, void *);
|
||||
+void startup_handler(void);
|
||||
+void sighup_handler(void);
|
||||
int load_config(void);
|
||||
void sigchld_handler(int, short, void *);
|
||||
-void rt_msg_handler(int, short, void *);
|
||||
-void external_handler(int, short, void *);
|
||||
+void rt_msg_handler(int fd);
|
||||
void external_async_exec(struct ifsd_external *);
|
||||
void check_external_status(struct ifsd_state *);
|
||||
@@ -61,6 +63,8 @@
|
||||
void external_evtimer_setup(struct ifsd_state *, int);
|
||||
@@ -75,6 +79,8 @@
|
||||
void remove_expression(struct ifsd_expression *, struct ifsd_state *);
|
||||
void log_init(int);
|
||||
void logit(int, const char *, ...);
|
||||
+int get_ifcount(void);
|
||||
+int get_ifmib_general(int, struct ifmibdata *);
|
||||
|
||||
void
|
||||
usage(void)
|
||||
@@ -89,7 +95,7 @@
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
- struct timeval tv;
|
||||
+ struct timespec ts;
|
||||
int ch;
|
||||
|
||||
while ((ch = getopt(argc, argv, "dD:f:hniv")) != -1) {
|
||||
@@ -136,26 +142,54 @@
|
||||
setproctitle(NULL);
|
||||
}
|
||||
|
||||
- event_init();
|
||||
+ kq = kqueue();
|
||||
+
|
||||
log_init(opt_debug);
|
||||
|
||||
- signal_set(&sigchld_ev, SIGCHLD, sigchld_handler, &sigchld_ev);
|
||||
- signal_add(&sigchld_ev, NULL);
|
||||
+ ts.tv_sec = 0;
|
||||
+ ts.tv_nsec = 0;
|
||||
+
|
||||
+ EV_SET(&kev, SIGCHLD, EVFILT_SIGNAL, EV_ADD, 0, 0, (void *)sigchld_handler);
|
||||
+ kevent(kq, &kev, 1, NULL, 0, &ts);
|
||||
|
||||
/* Loading the config needs to happen in the event loop */
|
||||
- tv.tv_usec = 0;
|
||||
- tv.tv_sec = 0;
|
||||
- evtimer_set(&startup_ev, startup_handler, &startup_ev);
|
||||
- evtimer_add(&startup_ev, &tv);
|
||||
|
||||
- event_loop(0);
|
||||
+ EV_SET(&kev, IFSD_EVTIMER_STARTUP, EVFILT_TIMER, EV_ADD|EV_ONESHOT, 0, 0, (void *)startup_handler);
|
||||
+ kevent(kq, &kev, 1, NULL, 0, &ts);
|
||||
+
|
||||
+ /* event loop */
|
||||
+ for(;;)
|
||||
+ {
|
||||
+ /* wait indefinitely for an event */
|
||||
+ kevent(kq, NULL, 0, &kev, 1, NULL);
|
||||
+
|
||||
+ void (*handler)(void);
|
||||
+ void (*rt_handler)(int);
|
||||
+ if (kev.filter == EVFILT_READ)
|
||||
+ {
|
||||
+ rt_handler = kev.udata;
|
||||
+ rt_handler(kev.ident);
|
||||
+ }
|
||||
+ else if ((kev.filter == EVFILT_TIMER) && ((kev.ident - IFSD_EVTIMER_EXTERNAL) < MAX_TIMERS))
|
||||
+ {
|
||||
+ external_async_exec((struct ifsd_external *)kev.udata);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ handler = kev.udata;
|
||||
+ handler();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* NOTREACHED */
|
||||
exit(0);
|
||||
}
|
||||
|
||||
void
|
||||
-startup_handler(int fd, short event, void *arg)
|
||||
+startup_handler()
|
||||
void scan_ifstate(int, int, int);
|
||||
int scan_ifstate_single(int, int, struct ifsd_state *);
|
||||
+int get_ifcount(void);
|
||||
+int get_ifmib_general(int row, struct ifmibdata *ifmd);
|
||||
void fetch_state(void);
|
||||
void usage(void);
|
||||
void adjust_expressions(struct ifsd_expression_list *, int);
|
||||
@@ -159,7 +163,6 @@
|
||||
startup_handler(int fd, short event, void *arg)
|
||||
{
|
||||
int rt_fd;
|
||||
+ struct timespec ts;
|
||||
- unsigned int rtfilter;
|
||||
|
||||
if (load_config() != 0) {
|
||||
logit(IFSD_LOG_NORMAL, "unable to load config");
|
||||
@@ -165,18 +199,20 @@
|
||||
if ((rt_fd = socket(PF_ROUTE, SOCK_RAW, 0)) < 0)
|
||||
err(1, "no routing socket");
|
||||
@@ -169,11 +172,6 @@
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- event_set(&rt_msg_ev, rt_fd, EV_READ|EV_PERSIST,
|
||||
- rt_msg_handler, &rt_msg_ev);
|
||||
- event_add(&rt_msg_ev, NULL);
|
||||
+ ts.tv_sec = 0;
|
||||
+ ts.tv_nsec = 0;
|
||||
+
|
||||
+ EV_SET(&kev, rt_fd, EVFILT_READ, EV_ADD, 0, 0, (void *)rt_msg_handler);
|
||||
+ kevent(kq, &kev, 1, NULL, 0, &ts);
|
||||
- rtfilter = ROUTE_FILTER(RTM_IFINFO);
|
||||
- if (setsockopt(rt_fd, PF_ROUTE, ROUTE_MSGFILTER,
|
||||
- &rtfilter, sizeof(rtfilter)) == -1) /* not fatal */
|
||||
- log_warn("startup_handler: setsockopt");
|
||||
-
|
||||
event_set(&rt_msg_ev, rt_fd, EV_READ|EV_PERSIST, rt_msg_handler, NULL);
|
||||
event_add(&rt_msg_ev, NULL);
|
||||
|
||||
- signal_set(&sighup_ev, SIGHUP, sighup_handler, &sighup_ev);
|
||||
- signal_add(&sighup_ev, NULL);
|
||||
+ EV_SET(&kev, SIGHUP, EVFILT_SIGNAL, EV_ADD, 0, 0, (void *)sighup_handler);
|
||||
+ kevent(kq, &kev, 1, NULL, 0, &ts);
|
||||
|
||||
logit(IFSD_LOG_NORMAL, "started");
|
||||
}
|
||||
|
||||
void
|
||||
-sighup_handler(int fd, short event, void *arg)
|
||||
+sighup_handler()
|
||||
{
|
||||
logit(IFSD_LOG_NORMAL, "reloading config");
|
||||
if (load_config() != 0)
|
||||
@@ -207,7 +243,7 @@
|
||||
}
|
||||
|
||||
void
|
||||
-rt_msg_handler(int fd, short event, void *arg)
|
||||
+rt_msg_handler(int fd)
|
||||
{
|
||||
char msg[2048];
|
||||
struct rt_msghdr *rtm = (struct rt_msghdr *)&msg;
|
||||
@@ -245,22 +281,6 @@
|
||||
}
|
||||
|
||||
void
|
||||
-external_handler(int fd, short event, void *arg)
|
||||
-{
|
||||
- struct ifsd_external *external = (struct ifsd_external *)arg;
|
||||
- struct timeval tv;
|
||||
-
|
||||
- /* re-schedule */
|
||||
- tv.tv_usec = 0;
|
||||
- tv.tv_sec = external->frequency;
|
||||
- evtimer_set(&external->ev, external_handler, external);
|
||||
- evtimer_add(&external->ev, &tv);
|
||||
-
|
||||
- /* execute */
|
||||
- external_async_exec(external);
|
||||
-}
|
||||
-
|
||||
-void
|
||||
external_async_exec(struct ifsd_external *external)
|
||||
{
|
||||
char *argp[] = {"sh", "-c", NULL, NULL};
|
||||
@@ -354,23 +374,28 @@
|
||||
external_evtimer_setup(struct ifsd_state *state, int action)
|
||||
{
|
||||
struct ifsd_external *external;
|
||||
+ struct timespec ts;
|
||||
+ int freq;
|
||||
+ int imod = 0;
|
||||
+
|
||||
+ ts.tv_nsec = 0;
|
||||
+ ts.tv_sec = 0;
|
||||
|
||||
if (state != NULL) {
|
||||
switch (action) {
|
||||
case IFSD_EVTIMER_ADD:
|
||||
TAILQ_FOREACH(external,
|
||||
&state->external_tests, entries) {
|
||||
- struct timeval tv;
|
||||
|
||||
/* run it once right away */
|
||||
external_async_exec(external);
|
||||
|
||||
/* schedule it for later */
|
||||
- tv.tv_usec = 0;
|
||||
- tv.tv_sec = external->frequency;
|
||||
- evtimer_set(&external->ev, external_handler,
|
||||
- external);
|
||||
- evtimer_add(&external->ev, &tv);
|
||||
+ freq = (external->frequency * 1000);
|
||||
+ EV_SET(&kev, IFSD_EVTIMER_EXTERNAL + imod, EVFILT_TIMER, EV_ADD, 0, freq, (void *)external);
|
||||
+ kevent(kq, &kev, 1, NULL, 0, &ts);
|
||||
+ imod ++;
|
||||
+ if(imod >= MAX_TIMERS) imod = 0;
|
||||
}
|
||||
break;
|
||||
case IFSD_EVTIMER_DEL:
|
||||
@@ -380,7 +405,11 @@
|
||||
kill(external->pid, SIGKILL);
|
||||
external->pid = 0;
|
||||
}
|
||||
- evtimer_del(&external->ev);
|
||||
+ freq = (external->frequency * 1000);
|
||||
+ EV_SET(&kev, IFSD_EVTIMER_EXTERNAL + imod, EVFILT_TIMER, EV_DELETE, 0, freq, (void *)external);
|
||||
+ imod ++;
|
||||
+ if(imod < MAX_TIMERS)
|
||||
+ kevent(kq, &kev, 1, NULL, 0, &ts);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -504,7 +533,6 @@
|
||||
logit(IFSD_LOG_NORMAL, "changing state to %s",
|
||||
conf->nextstate->name);
|
||||
if (conf->curstate != NULL) {
|
||||
- evtimer_del(&conf->curstate->ev);
|
||||
external_evtimer_setup(conf->curstate,
|
||||
IFSD_EVTIMER_DEL);
|
||||
}
|
||||
@@ -550,6 +578,48 @@
|
||||
@@ -406,6 +404,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#define LINK_STATE_IS_UP(_s) \
|
||||
+ ((_s) >= LINK_STATE_UP)
|
||||
#define LINK_STATE_IS_DOWN(_s) \
|
||||
(!LINK_STATE_IS_UP((_s)) && (_s) != LINK_STATE_UNKNOWN)
|
||||
|
||||
@@ -584,6 +584,44 @@
|
||||
}
|
||||
}
|
||||
|
||||
+
|
||||
+int
|
||||
+get_ifcount(void)
|
||||
+{
|
||||
@ -282,7 +74,6 @@
|
||||
+ return(-1);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+int
|
||||
+get_ifmib_general(int row, struct ifmibdata *ifmd)
|
||||
+{
|
||||
@ -300,18 +91,16 @@
|
||||
+
|
||||
+ return sysctl(name, 6, ifmd, &len, (void *)0, 0);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
/*
|
||||
* Fetch the current link states.
|
||||
*/
|
||||
@@ -559,29 +629,34 @@
|
||||
@@ -593,26 +631,31 @@
|
||||
struct ifaddrs *ifap, *ifa;
|
||||
char *oname = NULL;
|
||||
int sock = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
+ int ifcount = get_ifcount();
|
||||
+ int i;
|
||||
+ int ifcount = get_ifcount();
|
||||
+ int i;
|
||||
|
||||
- if (getifaddrs(&ifap) != 0)
|
||||
+ if (getifaddrs(&ifap) != 0 || ifcount == -1)
|
||||
@ -320,7 +109,7 @@
|
||||
for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
|
||||
- struct ifreq ifr;
|
||||
- struct if_data ifrdat;
|
||||
+ struct ifmibdata ifmd;
|
||||
+ struct ifmibdata ifmd;
|
||||
+ struct if_data ifdata;
|
||||
|
||||
if (oname && !strcmp(oname, ifa->ifa_name))
|
||||
@ -341,20 +130,8 @@
|
||||
+ ifdata = ifmd.ifmd_data;
|
||||
|
||||
scan_ifstate(if_nametoindex(ifa->ifa_name),
|
||||
- ifrdat.ifi_link_state, &conf->always);
|
||||
+ ifdata.ifi_link_state, &conf->always);
|
||||
if (conf->curstate != NULL)
|
||||
scan_ifstate(if_nametoindex(ifa->ifa_name),
|
||||
- ifrdat.ifi_link_state, conf->curstate);
|
||||
+ ifdata.ifi_link_state, conf->curstate);
|
||||
- ifrdat.ifi_link_state, 0);
|
||||
+ ifdata.ifi_link_state, 0);
|
||||
}
|
||||
freeifaddrs(ifap);
|
||||
close(sock);
|
||||
@@ -663,7 +738,6 @@
|
||||
TAILQ_REMOVE(&state->external_tests,
|
||||
expression->u.external, entries);
|
||||
free(expression->u.external->command);
|
||||
- event_del(&expression->u.external->ev);
|
||||
free(expression->u.external);
|
||||
}
|
||||
break;
|
||||
|
@ -1,34 +1,10 @@
|
||||
--- ../ifstated-20050505.orig/ifstated.h Thu May 5 11:51:24 2005
|
||||
+++ ifstated.h Thu Nov 18 16:48:39 2004
|
||||
@@ -1,4 +1,5 @@
|
||||
/* $OpenBSD: ifstated.h,v 1.4 2004/03/10 00:13:38 deraadt Exp $ */
|
||||
+/* $Id: ifstated.h,v 1.2 2004/11/18 21:48:39 mdg Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004 Ryan McBride
|
||||
@@ -47,7 +48,7 @@
|
||||
|
||||
struct ifsd_external {
|
||||
TAILQ_ENTRY(ifsd_external) entries;
|
||||
- struct event ev;
|
||||
+ struct kevent kev;
|
||||
struct ifsd_expression_list expressions;
|
||||
char *command;
|
||||
int prevstatus;
|
||||
@@ -107,7 +108,7 @@
|
||||
TAILQ_HEAD(ifsd_external_list, ifsd_external);
|
||||
|
||||
struct ifsd_state {
|
||||
- struct event ev;
|
||||
+ struct kevent kev;
|
||||
struct ifsd_ifstate_list interface_states;
|
||||
struct ifsd_external_list external_tests;
|
||||
TAILQ_ENTRY(ifsd_state) entries;
|
||||
@@ -138,6 +139,7 @@
|
||||
};
|
||||
|
||||
enum { IFSD_EVTIMER_ADD, IFSD_EVTIMER_DEL };
|
||||
+enum { IFSD_EVTIMER_STARTUP, IFSD_EVTIMER_EXTERNAL };
|
||||
struct ifsd_config *parse_config(char *, int);
|
||||
int cmdline_symset(char *);
|
||||
void clear_config(struct ifsd_config *);
|
||||
--- ifstated.h.orig 2010-06-11 12:38:31.150643481 -0500
|
||||
+++ ifstated.h 2010-06-11 12:38:35.768692647 -0500
|
||||
@@ -142,5 +142,5 @@
|
||||
void log_warnx(const char *, ...);
|
||||
void log_info(const char *, ...);
|
||||
void log_debug(const char *, ...);
|
||||
-__dead void fatal(const char *);
|
||||
-__dead void fatalx(const char *);
|
||||
+__dead2 void fatal(const char *);
|
||||
+__dead2 void fatalx(const char *);
|
||||
|
@ -1,25 +0,0 @@
|
||||
--- ../ifstated-20050505.orig/parse.y Thu May 5 11:51:24 2005
|
||||
+++ parse.y Thu May 5 12:06:07 2005
|
||||
@@ -1,4 +1,5 @@
|
||||
/* $OpenBSD: parse.y,v 1.9 2005/02/07 12:41:53 mcbride Exp $ */
|
||||
+/* $Id: parse.y,v 1.3 2005/05/05 16:06:07 mdg Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004 Ryan McBride <mcbride@openbsd.org>
|
||||
@@ -24,6 +25,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
+#include <sys/limits.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <net/if.h>
|
||||
@@ -35,7 +37,7 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
-#include <event.h>
|
||||
+#include <sys/event.h>
|
||||
|
||||
#include "ifstated.h"
|
||||
|
@ -1,10 +1,14 @@
|
||||
|
||||
*** ATTENTION ***
|
||||
|
||||
To run ifstated from startup, add
|
||||
ifstated_enable="YES" to /etc/rc.conf
|
||||
You must create a %%PREFIX%%/etc/ifstated.conf file (a sample is
|
||||
provided). To run ifstated from startup, add the following to /etc/rc.conf:
|
||||
|
||||
ifstated_enable="YES"
|
||||
|
||||
|
||||
Available variables you can set in /etc/rc.conf:
|
||||
|
||||
Available variables you add/set to /etc/rc.conf.
|
||||
- ifstated_enable (bool): Set to "NO" by default.
|
||||
Set it to "YES" to enable ifstated.
|
||||
- ifstated_flags (str): Set to "-f %%PREFIX%%/etc/ifstated.conf" by default.
|
||||
|
Loading…
Reference in New Issue
Block a user