Page MenuHomeFreeBSD

D18533.id57629.diff
No OneTemporary

D18533.id57629.diff

Index: net/zerotier/Makefile
===================================================================
--- net/zerotier/Makefile
+++ 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 @@
.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:
Index: net/zerotier/files/local.conf.sample
===================================================================
--- /dev/null
+++ net/zerotier/files/local.conf.sample
@@ -0,0 +1,15 @@
+{
+ "physical": {
+ "127.0.0.0/8": {
+ "blacklist": true
+ },
+ "10.0.0.0/8": {
+ "blacklist": true
+ }
+ },
+ "settings": {
+ "primaryPort": 0,
+ "allowTcpFallbackRelay": false
+ }
+}
+
Index: net/zerotier/files/zerotier.in
===================================================================
--- net/zerotier/files/zerotier.in
+++ 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"
-
Index: net/zerotier/pkg-message
===================================================================
--- net/zerotier/pkg-message
+++ net/zerotier/pkg-message
@@ -17,4 +17,14 @@
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.
+
#################################

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 21, 9:44 AM (20 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25759202
Default Alt Text
D18533.id57629.diff (3 KB)

Event Timeline