Index: net/Makefile =================================================================== --- net/Makefile +++ net/Makefile @@ -1086,6 +1086,7 @@ SUBDIR += radreport SUBDIR += radsecproxy SUBDIR += radvd + SUBDIR += radvd2 SUBDIR += raggle SUBDIR += rclone SUBDIR += rdapper Index: net/radvd2/Makefile =================================================================== --- /dev/null +++ net/radvd2/Makefile @@ -0,0 +1,28 @@ +# Created by: Patrick Li +# $FreeBSD$ + +PORTNAME= radvd +PORTVERSION= 2.15 +CATEGORIES= net ipv6 +MASTER_SITES= http://www.litech.org/radvd/dist/ + +MAINTAINER= farrokhi@FreeBSD.org +COMMENT= Linux/BSD IPv6 router advertisement daemon + +LIB_DEPENDS= libdaemon.so:devel/libdaemon + +CONFLICTS_INSTALL= radvd-1* + +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --program-transform-name= +USES= gmake pkgconfig +USE_RC_SUBR= radvd + +PORTDOCS= CHANGES COPYRIGHT INTRO.html README TODO + +post-install: + ${INSTALL_DATA} ${WRKSRC}/radvd.conf.example ${STAGEDIR}${PREFIX}/etc + ${INSTALL} -d ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${PORTDOCS:S.^.${WRKSRC}/.} ${STAGEDIR}${DOCSDIR} + +.include Index: net/radvd2/distinfo =================================================================== --- /dev/null +++ net/radvd2/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1483864860 +SHA256 (radvd-2.15.tar.gz) = 83dd770595e6182757fd652cfc46ee462b73d8d34ba0848a1d481c4d51143607 +SIZE (radvd-2.15.tar.gz) = 214256 Index: net/radvd2/files/patch-device-bsd44.c =================================================================== --- /dev/null +++ net/radvd2/files/patch-device-bsd44.c @@ -0,0 +1,30 @@ + +$FreeBSD$ + +--- device-bsd44.c.orig 2015-11-19 13:58:52 UTC ++++ device-bsd44.c +@@ -116,6 +116,24 @@ int update_device_info(int sock, struct + + int setup_allrouters_membership(int sock, struct Interface *iface) + { ++ struct ipv6_mreq mreq; ++ ++ memset(&mreq, 0, sizeof(mreq)); ++ mreq.ipv6mr_interface = iface->props.if_index; ++ ++ /* all-routers multicast address */ ++ if (inet_pton(AF_INET6, "ff02::2", ++ &mreq.ipv6mr_multiaddr.s6_addr) != 1) { ++ flog(LOG_ERR, "inet_pton failed"); ++ return (-1); ++ } ++ ++ if (setsockopt(sock, IPPROTO_IPV6, IPV6_JOIN_GROUP, ++ &mreq, sizeof(mreq)) < 0) { ++ flog(LOG_ERR, "can't join ipv6-allrouters on %s", iface->props.name); ++ return (-1); ++ } ++ + return 0; + } + Index: net/radvd2/files/radvd.in =================================================================== --- /dev/null +++ net/radvd2/files/radvd.in @@ -0,0 +1,28 @@ +#!/bin/sh + +# PROVIDE: radvd +# REQUIRE: NETWORKING + +# +# Add the following line to /etc/rc.conf to enable radvd: +# +# radvd_enable="YES" +# + +. /etc/rc.subr + +name=radvd +rcvar=radvd_enable + +pidfile=/var/run/${name}.pid +command="%%PREFIX%%/sbin/${name}" + +load_rc_config $name +: ${radvd_enable="NO"} +: ${radvd_config="%%PREFIX%%/etc/${name}.conf"} + +required_files="${radvd_config}" + +command_args="-p ${pidfile} -C ${radvd_config}" + +run_rc_command "$1" Index: net/radvd2/pkg-descr =================================================================== --- /dev/null +++ net/radvd2/pkg-descr @@ -0,0 +1,5 @@ +radvd implements IPv6 router advertisements for Linux and FreeBSD +as specified in RFC 2461. Support for Mobile IPv6 as well as 6to4 +is included. + +WWW: http://www.litech.org/radvd/ Index: net/radvd2/pkg-plist =================================================================== --- /dev/null +++ net/radvd2/pkg-plist @@ -0,0 +1,6 @@ +etc/radvd.conf.example +sbin/radvd +sbin/radvdump +man/man5/radvd.conf.5.gz +man/man8/radvd.8.gz +man/man8/radvdump.8.gz