diff options
author | Dave Cottlehuber <dch@FreeBSD.org> | 2019-05-22 20:51:41 +0000 |
---|---|---|
committer | Dave Cottlehuber <dch@FreeBSD.org> | 2019-05-22 20:51:41 +0000 |
commit | 7b73228cde530c812646ab74a691edb1f00e3966 (patch) | |
tree | c6258e7c2852e27bbdd3653a3ad2e8ac7c51b0af /net | |
parent | bd5373d182a77c0955f0feef652212124abaf0d9 (diff) | |
download | ports-7b73228cde530c812646ab74a691edb1f00e3966.tar.gz ports-7b73228cde530c812646ab74a691edb1f00e3966.zip |
Notes
Diffstat (limited to 'net')
-rw-r--r-- | net/zerotier/Makefile | 8 | ||||
-rw-r--r-- | net/zerotier/files/zerotier.in | 32 | ||||
-rw-r--r-- | net/zerotier/pkg-message | 10 |
3 files changed, 44 insertions, 6 deletions
diff --git a/net/zerotier/Makefile b/net/zerotier/Makefile index 386f491ae618..c91b9427d1e8 100644 --- a/net/zerotier/Makefile +++ b/net/zerotier/Makefile @@ -3,7 +3,7 @@ PORTNAME= zerotier DISTVERSION= 1.2.12 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net MAINTAINER= dch@FreeBSD.org @@ -37,6 +37,12 @@ SUB_LIST+= ZEROTIER_SYSLOG="-s debug -T zerotier" .else SUB_LIST+= ZEROTIER_SYSLOG="" .endif +# after r347241 tun(4) and tap(4) have been merged to tuntap(4) +.if (${OSVERSION} >= 1300028) +SUB_LIST+= ZEROTIER_IF_TAP="if_tuntap" +.else +SUB_LIST+= ZEROTIER_IF_TAP="if_tap" +.endif .endif do-install: diff --git a/net/zerotier/files/zerotier.in b/net/zerotier/files/zerotier.in index 87b66e7b3eef..0c2a12a7416d 100644 --- a/net/zerotier/files/zerotier.in +++ b/net/zerotier/files/zerotier.in @@ -12,29 +12,51 @@ # # zerotier_enable (bool): Set to NO by default. # Set it to YES to enable zerotier. +# zerotier_wait_for_net (bool): Set to NO by default. Use for DHCP interfaces only +# Set it to YES to require zerotier to wait until online . /etc/rc.subr name=zerotier rcvar=zerotier_enable +desc="peer-to-peer software-defined networking" load_rc_config $name -: ${zerotier_enable:="NO"} +: ${zerotier_enable:=NO} +: ${zerotier_wait_for_net:=NO} -required_modules="if_tap" +required_modules=%%ZEROTIER_IF_TAP%% pidfile="/var/run/${name}.pid" start_precmd="install -o root /dev/null ${pidfile}" -command="/usr/sbin/daemon" +command=/usr/sbin/daemon command_args=" \ -c \ -t ${name} \ -r \ -P ${pidfile} \ %%ZEROTIER_SYSLOG%% \ - /usr/local/sbin/${name}-one" + %%PREFIX%%/sbin/${name}-one /var/db/${name}-one/" + +start_postcmd=start_postcmd + +start_postcmd() +{ if checkyesno zerotier_wait_for_net; then + zerotier_count=5 + until %%PREFIX%%/bin/zerotier-cli status |egrep -o ONLINE\$; do + warn ${name} is waiting for ONLINE status + sleep 2 + zerotier_count=$((zerotier_count-1)) + test $zerotier_count -le 0 && break + done + if test $zerotier_count -le 0; then + warn ${name} still not ONLINE, stopped blocking + else + warn ${name} is ONLINE + fi + fi +} run_rc_command "$1" - diff --git a/net/zerotier/pkg-message b/net/zerotier/pkg-message index c0eade13a949..de5cd07c177d 100644 --- a/net/zerotier/pkg-message +++ b/net/zerotier/pkg-message @@ -17,4 +17,14 @@ net.link.tap.up_on_open=1 This avoids a race condition where zerotier interfaces are created, but not up, prior to firewalls and services trying to use them. +You can place optional configuration in /var/db/zerotier-one/local.conf +as required, see documentation at https://www.zerotier.com/manual.shtml + +If your system boots from DHCP (such as a laptop), there is a new rc.conf +flag that will require that system startup will wait until the zerotier +network is established before proceeding. Note that this flag *does not* +work for systems confgured with statically assigned IP addresses, and +these will hang indefinitely due to an irreducible loop in rc(8) startup +files. This flag is disabled by default. + ################################# |