Update olsrd to the latest stable release (not listed on the project's website but visible at http://www.olsr.org/releases/0.9/ -- pointed out by upstream in https://lists.olsr.org/pipermail/olsr-dev/2017-May/008407.html)
ok? Index: Makefile =================================================================== RCS file: /cvs/ports/net/olsrd/Makefile,v retrieving revision 1.28 diff -u -p -r1.28 Makefile --- Makefile 13 May 2017 22:27:20 -0000 1.28 +++ Makefile 4 Jun 2017 09:48:51 -0000 @@ -3,7 +3,7 @@ COMMENT-main= OLSR routing daemon COMMENT-gui= OLSR routing daemon GUI -VERSION= 0.9.0.3 +VERSION= 0.9.6.1 DISTNAME= olsrd-${VERSION} PKGNAME-main= olsrd-${VERSION} PKGNAME-gui= olsrd-gui-${VERSION} @@ -41,7 +41,10 @@ NO_TEST= Yes MODULES= devel/gettext ALL_TARGET= build_all -MAKE_FLAGS= DEBUG=0 CC="${CC}" OS=obsd LIBNET=1 +MAKE_FLAGS= CC="${CC}" OS=obsd LIBNET=1 +.ifdef DEBUG +MAKE_FLAGS+= DEBUG=1 +.endif CPPFLAGS+= "-I${PREFIX}/libnet-1.1" FAKE_FLAGS= SBINDIR=${DESTDIR}/${PREFIX}/sbin \ ETCDIR=${DESTDIR}/${PREFIX}/share/examples/olsrd \ Index: distinfo =================================================================== RCS file: /cvs/ports/net/olsrd/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- distinfo 13 May 2017 22:27:20 -0000 1.9 +++ distinfo 4 Jun 2017 09:49:03 -0000 @@ -1,2 +1,2 @@ -SHA256 (olsrd-0.9.0.3.tar.gz) = WdN1cMWOwlY2px1afPRGBEi+aT8B12iuNpp/ZuWAd/s= -SIZE (olsrd-0.9.0.3.tar.gz) = 5791920 +SHA256 (olsrd-0.9.6.1.tar.gz) = y5UaXThKtIApcx+hs9109/ErU1L0LuraVLuB3ULHdFc= +SIZE (olsrd-0.9.6.1.tar.gz) = 1104287 Index: patches/patch-Makefile_inc =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-Makefile_inc,v retrieving revision 1.3 diff -u -p -r1.3 patch-Makefile_inc --- patches/patch-Makefile_inc 17 May 2017 12:46:42 -0000 1.3 +++ patches/patch-Makefile_inc 4 Jun 2017 10:02:25 -0000 @@ -3,7 +3,7 @@ $OpenBSD: patch-Makefile_inc,v 1.3 2017/ Index: Makefile.inc --- Makefile.inc.orig +++ Makefile.inc -@@ -42,12 +42,6 @@ endif +@@ -90,13 +90,6 @@ endif # # programs @@ -13,6 +13,7 @@ Index: Makefile.inc -else -CC ?= $(CCACHE) gcc -endif +-CC := $(strip $(CC)) ifeq ($(DEBUG),0) - STRIP ?= strip - else + ifeq ($(NOSTRIP),0) + STRIP ?= strip Index: patches/patch-make_Makefile_obsd =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-make_Makefile_obsd,v retrieving revision 1.3 diff -u -p -r1.3 patch-make_Makefile_obsd --- patches/patch-make_Makefile_obsd 13 May 2017 22:27:20 -0000 1.3 +++ patches/patch-make_Makefile_obsd 4 Jun 2017 09:59:54 -0000 @@ -2,7 +2,7 @@ $OpenBSD: patch-make_Makefile_obsd,v 1.3 Index: make/Makefile.obsd --- make/Makefile.obsd.orig +++ make/Makefile.obsd -@@ -8,22 +8,24 @@ ETCDIR = /etc/olsrd +@@ -51,22 +51,24 @@ ETCDIR = /etc/olsrd LIBDIR = $(PREFIX)/lib DOCDIR = $(PREFIX)/share/doc MANDIR = $(PREFIX)/man Index: patches/patch-src_bsd_kernel_routes_c =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-src_bsd_kernel_routes_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_bsd_kernel_routes_c --- patches/patch-src_bsd_kernel_routes_c 13 May 2017 22:27:20 -0000 1.1 +++ patches/patch-src_bsd_kernel_routes_c 4 Jun 2017 09:59:54 -0000 @@ -3,7 +3,7 @@ $OpenBSD: patch-src_bsd_kernel_routes_c, Index: src/bsd/kernel_routes.c --- src/bsd/kernel_routes.c.orig +++ src/bsd/kernel_routes.c -@@ -111,6 +111,9 @@ add_del_route(const struct rt_entry *rt, int add) +@@ -115,6 +115,9 @@ add_del_route(const struct rt_entry *rt, int add) rtm->rtm_flags = olsr_rt_flags(rt, add); rtm->rtm_pid = OLSR_PID; rtm->rtm_seq = ++seq; @@ -13,7 +13,7 @@ Index: src/bsd/kernel_routes.c /* walk to the end of the header */ walker = buff + sizeof(struct rt_msghdr); -@@ -222,14 +225,31 @@ add_del_route(const struct rt_entry *rt, int add) +@@ -226,14 +229,24 @@ add_del_route(const struct rt_entry *rt, int add) drtm->rtm_version = RTM_VERSION; drtm->rtm_type = RTM_DELETE; drtm->rtm_index = 0; @@ -29,13 +29,6 @@ Index: src/bsd/kernel_routes.c memcpy(walker, &sin4, sizeof(sin4)); walker += sin_size; drtm->rtm_addrs = RTA_DST; -+ if (0 != (drtm->rtm_flags & RTF_GATEWAY)) { -+ nexthop = &rt->rt_nexthop; -+ sin4.sin_addr = nexthop->gateway.v4; -+ memcpy(walker, &sin4, sizeof(sin4)); -+ walker += sin_size; -+ drtm->rtm_addrs |= RTA_GATEWAY; -+ } + if (0 == (drtm->rtm_flags & RTF_HOST)) { + olsr_prefix_to_netmask(&mask, rt->rt_dst.prefix_len); + sin4.sin_addr = mask.v4; @@ -46,7 +39,7 @@ Index: src/bsd/kernel_routes.c drtm->rtm_msglen = (unsigned short)(walker - dbuff); len = write(olsr_cnf->rts, dbuff, drtm->rtm_msglen); if (len < 0) { -@@ -298,6 +318,9 @@ add_del_route6(const struct rt_entry *rt, int add) +@@ -302,6 +315,9 @@ add_del_route6(const struct rt_entry *rt, int add) rtm->rtm_flags = olsr_rt_flags(rt, add); rtm->rtm_pid = OLSR_PID; rtm->rtm_seq = ++seq; @@ -56,7 +49,7 @@ Index: src/bsd/kernel_routes.c /* walk to the end of the header */ walker = buff + sizeof(struct rt_msghdr); -@@ -385,6 +408,9 @@ add_del_route6(const struct rt_entry *rt, int add) +@@ -389,6 +405,9 @@ add_del_route6(const struct rt_entry *rt, int add) drtm->rtm_index = 0; drtm->rtm_flags = olsr_rt_flags(rt, add); drtm->rtm_seq = ++seq; Index: patches/patch-src_bsd_net_c =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-src_bsd_net_c,v retrieving revision 1.3 diff -u -p -r1.3 patch-src_bsd_net_c --- patches/patch-src_bsd_net_c 13 May 2017 22:27:20 -0000 1.3 +++ patches/patch-src_bsd_net_c 4 Jun 2017 10:45:16 -0000 @@ -3,11 +3,92 @@ $OpenBSD: patch-src_bsd_net_c,v 1.3 2017 Index: src/bsd/net.c --- src/bsd/net.c.orig +++ src/bsd/net.c -@@ -51,6 +51,7 @@ - #include "../ipcalc.h" - #include "../parser.h" /* dnc: needed for call to packet_parser() */ - #include "../olsr_protocol.h" -+#include "../olsr_random.h" - #include "../olsr_cfg.h" - #include "../olsr.h" +@@ -55,6 +55,7 @@ + #include "ipcalc.h" + #include "parser.h" /* dnc: needed for call to packet_parser() */ + #include "olsr_protocol.h" ++#include "olsr_random.h" + #include "olsr_cfg.h" + #include "olsr.h" +@@ -64,6 +65,7 @@ + #include <string.h> + #include <unistd.h> + #include <net/if.h> ++#include <net/if_media.h> + #include <sys/ioctl.h> + #include <fcntl.h> + #include <syslog.h> +@@ -86,7 +88,6 @@ + #ifdef __NetBSD__ + #include <net/if_ether.h> + #include <netinet6/in6_var.h> /* For struct in6_ifreq */ +-#include <net80211/ieee80211_ioctl.h> + #include <ifaddrs.h> + #endif /* __NetBSD__ */ + +@@ -100,8 +101,6 @@ + #include <netinet6/in6_var.h> /* For struct in6_ifreq */ + #include <ifaddrs.h> + #include <sys/uio.h> +-#include <net80211/ieee80211.h> +-#include <net80211/ieee80211_ioctl.h> + #endif /* __OpenBSD__ */ + + #if defined __FreeBSD__ || defined __FreeBSD_kernel__ +@@ -109,10 +108,6 @@ + #include <net/ethernet.h> + #include <netinet/in_var.h> + #include <ifaddrs.h> +-#ifndef FBSD_NO_80211 +-#include <net80211/ieee80211.h> +-#include <net80211/ieee80211_ioctl.h> +-#endif /* FBSD_NO_80211 */ + #endif /* defined __FreeBSD__ || defined __FreeBSD_kernel__ */ + + #ifdef __APPLE__ +@@ -747,39 +742,12 @@ olsr_select(int nfds, fd_set * readfds, fd_set * write + int + check_wireless_interface(char *ifname) + { +-#if (defined __FreeBSD__ || defined __FreeBSD_kernel__ ) && !defined FBSD_NO_80211 +- +-/* From FreeBSD ifconfig/ifieee80211.c ieee80211_status() */ +- struct ieee80211req ireq; +- u_int8_t data[32]; +- +- memset(&ireq, 0, sizeof(ireq)); +- strscpy(ireq.i_name, ifname, sizeof(ireq.i_name)); +- ireq.i_data = &data; +- ireq.i_type = IEEE80211_IOC_SSID; +- ireq.i_val = -1; +- return (ioctl(olsr_cnf->ioctl_s, SIOCG80211, &ireq) >= 0) ? 1 : 0; +-#elif defined __OpenBSD__ +- struct ieee80211_nodereq nr; +- bzero(&nr, sizeof(nr)); +- strscpy(nr.nr_ifname, ifname, sizeof(nr.nr_ifname)); +- return (ioctl(olsr_cnf->ioctl_s, SIOCG80211FLAGS, &nr) >= 0) ? 1 : 0; +-#elif defined __NetBSD__ +- struct ifreq ireq; +- struct ieee80211_nwid data; ++ struct ifmediareq ifmr; + int ret; +- +- memset(&ireq, 0, sizeof(ireq)); +- strscpy(ireq.ifr_name, ifname, sizeof(ireq.ifr_name)); +- ireq.ifr_data = &data; +- ret = ioctl(olsr_cnf->ioctl_s, SIOCG80211NWID, &ireq); +- if(ret == 0) +- return 1; +- return 0; +-#else /* defined __NetBSD__ */ +- ifname = NULL; /* squelsh compiler warning */ +- return 0; +-#endif /* defined __NetBSD__ */ ++ bzero(&ifmr, sizeof(ifmr)); ++ strscpy(ifmr.ifm_name, ifname, sizeof(ifmr.ifm_name)); ++ ret = ioctl(olsr_cnf->ioctl_s, SIOCGIFMEDIA, (caddr_t)&ifmr); ++ return (ret == 0 && IFM_TYPE(ifmr.ifm_current) == IFM_IEEE80211); + } + + #include <sys/sockio.h> Index: patches/patch-src_cfgparser_local_mk =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-src_cfgparser_local_mk,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_cfgparser_local_mk --- patches/patch-src_cfgparser_local_mk 13 May 2017 22:27:20 -0000 1.2 +++ patches/patch-src_cfgparser_local_mk 4 Jun 2017 09:59:54 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-src_cfgparser_local_mk,v 1.2 2017/05/13 22:27:20 stsp Exp $ ---- src/cfgparser/local.mk.orig Sun Sep 20 14:22:23 2015 -+++ src/cfgparser/local.mk Sun Apr 3 12:48:37 2016 -@@ -79,5 +79,7 @@ endif +Index: src/cfgparser/local.mk +--- src/cfgparser/local.mk.orig ++++ src/cfgparser/local.mk +@@ -83,5 +83,7 @@ endif $(C)oparse.o: CFLAGS := $(filter-out -Wunreachable-code,$(CFLAGS)) Index: patches/patch-src_olsr_random_h =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-src_olsr_random_h,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_olsr_random_h --- patches/patch-src_olsr_random_h 13 May 2017 22:27:20 -0000 1.1 +++ patches/patch-src_olsr_random_h 4 Jun 2017 10:03:36 -0000 @@ -3,30 +3,25 @@ $OpenBSD: patch-src_olsr_random_h,v 1.1 Index: src/olsr_random.h --- src/olsr_random.h.orig +++ src/olsr_random.h -@@ -9,7 +9,14 @@ +@@ -54,7 +54,14 @@ #define OLSR_RANDOM_MAX INT32_MAX +#if defined(__OpenBSD__) - static inline long int olsr_random(void) { + static INLINE long int olsr_random(void) { + long int r; + arc4random_buf(&r, sizeof(r)); + return r; +} +#else -+static inline long int olsr_random(void) { ++static INLINE long int olsr_random(void) { int32_t value; int randomFile; -@@ -32,9 +39,10 @@ static inline long int olsr_random(void) { +@@ -77,5 +84,6 @@ static INLINE long int olsr_random(void) { return abs(value); } -+#endif - - static inline void olsr_init_random(void) { -- srandom(time(NULL)); -+ srandom(arc4random()); - } ++#endif /* __OpenBSD__ */ #endif /* _OLSR_RANDOM_H */ Index: patches/patch-src_plugin_loader_c =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-src_plugin_loader_c,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_plugin_loader_c --- patches/patch-src_plugin_loader_c 13 May 2017 22:27:20 -0000 1.2 +++ patches/patch-src_plugin_loader_c 4 Jun 2017 09:59:54 -0000 @@ -1,8 +1,9 @@ $OpenBSD: patch-src_plugin_loader_c,v 1.2 2017/05/13 22:27:20 stsp Exp $ the plugins get installed to $LOCALBASE/lib/olsrd-plugins, so load them from there. ---- src/plugin_loader.c.orig Sun Sep 20 14:22:23 2015 -+++ src/plugin_loader.c Sun Apr 3 14:06:06 2016 -@@ -88,20 +88,14 @@ olsr_load_plugins(void) +Index: src/plugin_loader.c +--- src/plugin_loader.c.orig ++++ src/plugin_loader.c +@@ -91,20 +91,14 @@ olsr_load_plugins(void) static int olsr_load_dl(char *libname, struct plugin_param *params) { Index: patches/patch-src_unix_ifnet_c =================================================================== RCS file: /cvs/ports/net/olsrd/patches/patch-src_unix_ifnet_c,v retrieving revision 1.3 diff -u -p -r1.3 patch-src_unix_ifnet_c --- patches/patch-src_unix_ifnet_c 13 May 2017 22:27:20 -0000 1.3 +++ patches/patch-src_unix_ifnet_c 4 Jun 2017 09:59:54 -0000 @@ -3,7 +3,7 @@ $OpenBSD: patch-src_unix_ifnet_c,v 1.3 2 Index: src/unix/ifnet.c --- src/unix/ifnet.c.orig +++ src/unix/ifnet.c -@@ -646,7 +646,10 @@ chk_if_up(struct olsr_if *iface, int debuglvl __attrib +@@ -632,7 +632,10 @@ chk_if_up(struct olsr_if *iface, int debuglvl __attrib /* Find broadcast address */ if (iface->cnf->ipv4_multicast.v4.s_addr) { /* Specified broadcast */ @@ -14,4 +14,4 @@ Index: src/unix/ifnet.c + sin->sin_family = AF_INET; } else { /* Autodetect */ - if (ioctl(olsr_cnf->ioctl_s, SIOCGIFBRDADDR, &ifr) < 0) { + struct sockaddr* ifrb; Index: pkg/PLIST-main =================================================================== RCS file: /cvs/ports/net/olsrd/pkg/PLIST-main,v retrieving revision 1.3 diff -u -p -r1.3 PLIST-main --- pkg/PLIST-main 13 May 2017 22:27:20 -0000 1.3 +++ pkg/PLIST-main 4 Jun 2017 10:06:54 -0000 @@ -1,7 +1,7 @@ @comment $OpenBSD: PLIST-main,v 1.3 2017/05/13 22:27:20 stsp Exp $ +@conflict olsrd-plugins-* @pkgpath net/olsrd @pkgpath net/olsrd,-plugins -@conflict olsrd-plugins-* bin/olsr-topology-view.pl lib/olsrd-plugins/ lib/olsrd-plugins/olsrd_dot_draw.so @@ -9,6 +9,7 @@ lib/olsrd-plugins/olsrd_httpinfo.so lib/olsrd-plugins/olsrd_jsoninfo.so lib/olsrd-plugins/olsrd_mini.so lib/olsrd-plugins/olsrd_nameservice.so +lib/olsrd-plugins/olsrd_netjson.so lib/olsrd-plugins/olsrd_pgraph.so lib/olsrd-plugins/olsrd_secure.so lib/olsrd-plugins/olsrd_txtinfo.so @@ -20,8 +21,7 @@ share/examples/olsrd/ @sample ${SYSCONFDIR}/olsrd/ share/examples/olsrd/olsrd.conf @sample ${SYSCONFDIR}/olsrd/olsrd.conf -share/examples/olsrd/olsrd.conf.default.full -share/examples/olsrd/olsrd.conf.default.full.txt share/examples/olsrd/olsrd.conf.default.lq share/examples/olsrd/olsrd.conf.default.rfc +share/examples/olsrd/olsrd.conf.default.txt @rcscript /etc/rc.d/olsrd