Kaynağa Gözat

Merge branch 'dev' into zeroidc

# Conflicts:
#	.gitignore
Grant Limberg 3 yıl önce
ebeveyn
işleme
b5186f7293

+ 13 - 0
.gitignore

@@ -124,3 +124,16 @@ workspace/
 workspace2/
 zeroidc/target/
 tmp/
+
+#snapcraft specifics
+/parts/
+/stage/
+/prime/
+
+*.snap
+
+.snapcraft
+__pycache__
+*.pyc
+*_source.tar.bz2
+snap/.snapcraft

+ 7 - 0
RELEASE-NOTES.md

@@ -1,6 +1,13 @@
 ZeroTier Release Notes
 ======
 
+# 2021-11-08 -- Version 1.8.2
+
+ * Fix multicast on linux.
+ * Fix a bug that could cause the tap adapter to have the wrong MAC on Linux.
+ * Update build flags to possibly support MacOS older than 10.14, but more work needs to be done. It may not work yet.
+ * Fix path variable setting on Windows.
+
 # 2021-10-28 -- Version 1.8.1
 
  * Fix numerous UI issues from 1.8.0 (never fully released).

+ 6 - 0
debian/changelog

@@ -1,3 +1,9 @@
+zerotier-one (1.8.2) unstable; urgency=medium
+
+  * See RELEASE-NOTES.md for release notes.
+
+ -- Adam Ierymenko <[email protected]>  Mon, 08 Nov 2021 01:00:00 -0700
+
 zerotier-one (1.8.1) unstable; urgency=medium
 
   * See RELEASE-NOTES.md for release notes.

+ 1 - 1
ext/installfiles/mac/ZeroTier One.pkgproj

@@ -701,7 +701,7 @@
 				<key>USE_HFS+_COMPRESSION</key>
 				<false/>
 				<key>VERSION</key>
-				<string>1.8.1</string>
+				<string>1.8.2</string>
 			</dict>
 			<key>TYPE</key>
 			<integer>0</integer>

+ 5 - 5
ext/installfiles/windows/ZeroTier One.aip

@@ -26,10 +26,10 @@
     <ROW Property="LIMITUI" MultiBuildValue="DefaultBuild:1"/>
     <ROW Property="MSIFASTINSTALL" MultiBuildValue="DefaultBuild:2"/>
     <ROW Property="Manufacturer" Value="ZeroTier, Inc."/>
-    <ROW Property="ProductCode" Value="1033:{5B1BC52A-019C-4DC4-B416-306762E86F2A} " Type="16"/>
+    <ROW Property="ProductCode" Value="1033:{2B153F53-2BD3-42C7-9972-D57F94E3CB8D} " Type="16"/>
     <ROW Property="ProductLanguage" Value="1033"/>
     <ROW Property="ProductName" Value="ZeroTier One"/>
-    <ROW Property="ProductVersion" Value="1.8.1" Type="32"/>
+    <ROW Property="ProductVersion" Value="1.8.2" Type="32"/>
     <ROW Property="REBOOT" MultiBuildValue="DefaultBuild:ReallySuppress"/>
     <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
     <ROW Property="UpgradeCode" Value="{B0E2A5F3-88B6-4E77-B922-CB4739B4C4C8}"/>
@@ -64,7 +64,7 @@
   </COMPONENT>
   <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
     <ROW Component="A918597FE054CCCB65ABDBA0AD8F63C" ComponentId="{458A5336-4527-4409-BB9D-D074790820A6}" Directory_="APPDIR" Attributes="4" KeyPath="A918597FE054CCCB65ABDBA0AD8F63C" Options="2"/>
-    <ROW Component="AI_CustomARPName" ComponentId="{2227CCEE-5A6D-4B8C-8A91-BE643A9BDBFA}" Directory_="APPDIR" Attributes="4" KeyPath="DisplayName" Options="1"/>
+    <ROW Component="AI_CustomARPName" ComponentId="{C78C4531-4AD8-4862-AA18-D3275DD575A3}" Directory_="APPDIR" Attributes="4" KeyPath="DisplayName" Options="1"/>
     <ROW Component="AI_DisableModify" ComponentId="{46FFA8C5-A0CB-4E05-9AD3-911D543DE8CA}" Directory_="APPDIR" Attributes="4" KeyPath="NoModify" Options="1"/>
     <ROW Component="AI_ExePath" ComponentId="{8E02B36C-7A19-429B-A93E-77A9261AC918}" Directory_="APPDIR" Attributes="4" KeyPath="AI_ExePath"/>
     <ROW Component="APPDIR" ComponentId="{4DD7907D-D7FE-4CD6-B1A0-B5C1625F5133}" Directory_="APPDIR" Attributes="0"/>
@@ -330,7 +330,7 @@
     <ROW MsiEmbeddedChainer="msichainer.exe" Condition="VersionMsi &gt;= &quot;4.05&quot;" CommandLine="[AI_CHAINER_CMD_LINE]" Source="msichainer.exe" Type="2"/>
   </COMPONENT>
   <COMPONENT cid="caphyon.advinst.msicomp.MsiEnvComponent">
-    <ROW Environment="Path" Name="=-*Path" Value="[~];[APPDIR]" Component_="AI_ExePath"/>
+    <ROW Environment="Path" Name="=-*Path" Value="[~];[APPDIR]" Component_="APPDIR"/>
   </COMPONENT>
   <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent">
     <ROW Feature_="ZeroTierOne" Component_="ProductInformation"/>
@@ -510,7 +510,7 @@
     <ROW XmlAttribute="xsischemaLocation" XmlElement="swidsoftware_identification_tag" Name="xsi:schemaLocation" Flags="14" Order="3" Value="http://standards.iso.org/iso/19770/-2/2008/schema.xsd software_identification_tag.xsd"/>
   </COMPONENT>
   <COMPONENT cid="caphyon.advinst.msicomp.XmlElementComponent">
-    <ROW XmlElement="swidbuild" ParentElement="swidnumeric" Name="swid:build" Condition="1" Order="2" Flags="14" Text="1" UpdateIndexInParent="0"/>
+    <ROW XmlElement="swidbuild" ParentElement="swidnumeric" Name="swid:build" Condition="1" Order="2" Flags="14" Text="2" UpdateIndexInParent="0"/>
     <ROW XmlElement="swidentitlement_required_indicator" ParentElement="swidsoftware_identification_tag" Name="swid:entitlement_required_indicator" Condition="1" Order="0" Flags="14" Text="false" UpdateIndexInParent="0"/>
     <ROW XmlElement="swidmajor" ParentElement="swidnumeric" Name="swid:major" Condition="1" Order="0" Flags="14" Text="1" UpdateIndexInParent="0"/>
     <ROW XmlElement="swidminor" ParentElement="swidnumeric" Name="swid:minor" Condition="1" Order="1" Flags="14" Text="8" UpdateIndexInParent="0"/>

+ 0 - 1
java/jni/Android.mk

@@ -28,7 +28,6 @@ LOCAL_SRC_FILES := \
     $(ZT1)/node/AES_aesni.cpp \
     $(ZT1)/node/AES_armcrypto.cpp \
     $(ZT1)/node/Bond.cpp \
-    $(ZT1)/node/BondController.cpp \
     $(ZT1)/node/C25519.cpp \
 	$(ZT1)/node/Capability.cpp \
 	$(ZT1)/node/CertificateOfMembership.cpp \

+ 10 - 0
make-linux.mk

@@ -245,6 +245,16 @@ ERR=$(error FATAL: architecture could not be determined from $(CC) -dumpmachine:
 err: ; $(ERR)
 endif
 
+# Flag for Intel 32-bit processors since some machine images are incorrectly marked as i386
+ifeq ($(ZT_IA32),1)
+	override LDFLAGS+=-m32
+	override CFLAGS+=-m32
+	override CXXFLAGS+=-m32
+	# Prevent the use of X64 crypto
+	ZT_USE_X64_ASM_SALSA=0
+	ZT_USE_X64_ASM_ED25519=0
+endif
+
 # Disable software updates by default on Linux since that is normally done with package management
 override DEFS+=-DZT_BUILD_PLATFORM=1 -DZT_BUILD_ARCHITECTURE=$(ZT_ARCHITECTURE) -DZT_SOFTWARE_UPDATE_DEFAULT="\"disable\""
 

+ 12 - 5
osdep/LinuxEthernetTap.cpp

@@ -213,6 +213,9 @@ LinuxEthernetTap::LinuxEthernetTap(
 			return;
 		}
 
+		usleep(100000);
+
+		ifr.ifr_flags |= IFF_MULTICAST;
 		ifr.ifr_flags |= IFF_UP;
 		if (ioctl(sock,SIOCSIFFLAGS,(void *)&ifr) < 0) {
 			::close(sock);
@@ -220,11 +223,15 @@ LinuxEthernetTap::LinuxEthernetTap(
 			return;
 		}
 
-		// Some kernel versions seem to require you to yield while the device comes up
-		// before they will accept MTU and MAC. For others it doesn't matter, but is
-		// harmless. This was moved to the worker thread though so as not to block the
-		// main ZeroTier loop.
-		usleep(500000);
+		usleep(100000);
+
+		ifr.ifr_ifru.ifru_hwaddr.sa_family = ARPHRD_ETHER;
+		_mac.copyTo(ifr.ifr_ifru.ifru_hwaddr.sa_data,6);
+		if (ioctl(sock,SIOCSIFHWADDR,(void *)&ifr) < 0) {
+			::close(sock);
+			printf("WARNING: ioctl() failed setting up Linux tap device (set MAC)\n");
+			return;
+		}
 
 		ifr.ifr_ifru.ifru_mtu = (int)_mtu;
 		if (ioctl(sock,SIOCSIFMTU,(void *)&ifr) < 0) {

+ 70 - 0
snap/snapcraft.yaml

@@ -0,0 +1,70 @@
+name: zerotier
+summary: ZeroTier is a software-based managed Ethernet switch for planet Earth.
+description: |
+  It erases the LAN/WAN distinction and makes VPNs, tunnels, proxies, and other kludges arising from the inflexible nature of physical networks obsolete. Everything is encrypted end-to-end and traffic takes the most direct (peer to peer) path available.
+  This snap contains ZeroTier One, a service that provides ZeroTier network connectivity and makes joining virtual networks as easy as joining IRC or Slack channels.
+  Visit ZeroTier's site for more information and pre-built binary packages. Apps for Android and iOS are available for free in the Google Play and Apple app stores.
+  Install
+    sudo snap install zerotier
+  Join your network
+    sudo zerotier.cli join 8056c2e21c000001
+    sudo zerotier.cli status
+  Approve your new node in ZeroTier Central (https://my.zerotier.com)! Welcome online!
+  
+adopt-info: one
+confinement: strict
+grade: stable
+base: core18
+
+apps:
+  one:
+    # Add -U to prevent attempting to drop privileges since snaps have their
+    # own containment mechanism. Otherwise, if a user named "zerotier-one"
+    # exists on the system, the setgid or related calls will fail.
+    command: usr/sbin/zerotier-one -U
+    daemon: simple
+    plugs:
+      - network
+      - network-bind
+      - network-control
+
+  cli:
+    command: usr/sbin/zerotier-cli
+    plugs:
+      - network
+
+  idtool:
+    command: usr/sbin/zerotier-idtool
+    plugs:
+      - network
+
+layout:
+  /var/lib/zerotier-one:
+    bind: $SNAP_COMMON
+
+parts:
+  one:
+    plugin: make
+    source: .
+    source-type: git
+    build-packages:
+      - build-essential
+      - libc++-dev
+    make-parameters:
+      - CXX=g++
+    filesets:
+      binaries:
+        - usr/sbin/zerotier-one
+        - usr/sbin/zerotier-cli
+        - usr/sbin/zerotier-idtool
+    prime:
+      - $binaries
+    override-build: |
+      snapcraftctl build
+      # Grab the version string from the newly-compiled binary.
+      snapcraftctl set-version "$(./zerotier-one -v)"
+slots:
+  zerotier-control:
+    interface: content
+    read:
+      - $SNAP_COMMON

+ 1 - 1
version.h

@@ -27,7 +27,7 @@
 /**
  * Revision
  */
-#define ZEROTIER_ONE_VERSION_REVISION 1
+#define ZEROTIER_ONE_VERSION_REVISION 2
 
 /**
  * Build version

+ 4 - 1
zerotier-one.spec

@@ -1,5 +1,5 @@
 Name:           zerotier-one
-Version:        1.8.1
+Version:        1.8.2
 Release:        1%{?dist}
 Summary:        ZeroTier network virtualization service
 
@@ -152,6 +152,9 @@ esac
 %endif
 
 %changelog
+* Mon Nov 08 2021 Adam Ierymenko <[email protected]> - 1.8.2
+- see https://github.com/zerotier/ZeroTierOne for release notes
+
 * Wed Oct 20 2021 Adam Ierymenko <[email protected]> - 1.8.1
 - see https://github.com/zerotier/ZeroTierOne for release notes