Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 May 2019 20:51:41 +0000 (UTC)
From:      Dave Cottlehuber <dch@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r502286 - in head/net/zerotier: . files
Message-ID:  <201905222051.x4MKpfGS078365@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dch
Date: Wed May 22 20:51:41 2019
New Revision: 502286
URL: https://svnweb.freebsd.org/changeset/ports/502286

Log:
  net/zerotier: wait for ONLINE status before booting
  
  - add new flag to wnable waiting for zt interface to become available
  - handle newer name for tap(4) in CURRENT
  
  Approved by:	jrm (mentor)
  Differential Revision:	https://reviews.freebsd.org/D18533

Modified:
  head/net/zerotier/Makefile
  head/net/zerotier/files/zerotier.in
  head/net/zerotier/pkg-message

Modified: head/net/zerotier/Makefile
==============================================================================
--- head/net/zerotier/Makefile	Wed May 22 20:49:02 2019	(r502285)
+++ head/net/zerotier/Makefile	Wed May 22 20:51:41 2019	(r502286)
@@ -3,7 +3,7 @@
 
 PORTNAME=	zerotier
 DISTVERSION=	1.2.12
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	net
 
 MAINTAINER=	dch@FreeBSD.org
@@ -36,6 +36,12 @@ PLIST_FILES=	bin/zerotier-cli bin/zerotier-idtool sbin
 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
 

Modified: head/net/zerotier/files/zerotier.in
==============================================================================
--- head/net/zerotier/files/zerotier.in	Wed May 22 20:49:02 2019	(r502285)
+++ head/net/zerotier/files/zerotier.in	Wed May 22 20:51:41 2019	(r502286)
@@ -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/"
 
-run_rc_command "$1"
+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"

Modified: head/net/zerotier/pkg-message
==============================================================================
--- head/net/zerotier/pkg-message	Wed May 22 20:49:02 2019	(r502285)
+++ head/net/zerotier/pkg-message	Wed May 22 20:51:41 2019	(r502286)
@@ -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.
+
 #################################



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905222051.x4MKpfGS078365>