Browse Source

Fix Mac tap agent abort on EINTR.

Adam Ierymenko 6 years ago
parent
commit
c56831767e
2 changed files with 5 additions and 8 deletions
  1. 1 8
      make-mac.mk
  2. 4 0
      osdep/MacEthernetTapAgent.c

+ 1 - 8
make-mac.mk

@@ -79,7 +79,7 @@ ext/x64-salsa2012-asm/salsa2012.o:
 	$(CC) $(CFLAGS) -c ext/x64-salsa2012-asm/salsa2012.s -o ext/x64-salsa2012-asm/salsa2012.o
 
 mac-agent: FORCE
-	$(CC) -O -s -o MacEthernetTapAgent osdep/MacEthernetTapAgent.c
+	$(CC) -Ofast -o MacEthernetTapAgent osdep/MacEthernetTapAgent.c
 	$(CODESIGN) -f -s $(CODESIGN_APP_CERT) MacEthernetTapAgent
 
 one:	$(CORE_OBJS) $(ONE_OBJS) one.o mac-agent
@@ -138,11 +138,4 @@ distclean:	clean
 
 realclean:	clean
 
-# For those building from source -- installs signed binary tap driver in system ZT home
-#install-mac-tap: FORCE
-#	mkdir -p /Library/Application\ Support/ZeroTier/One
-#	rm -rf /Library/Application\ Support/ZeroTier/One/tap.kext
-#	cp -R ext/bin/tap-mac/tap.kext /Library/Application\ Support/ZeroTier/One
-#	chown -R root:wheel /Library/Application\ Support/ZeroTier/One/tap.kext
-
 FORCE:

+ 4 - 0
osdep/MacEthernetTapAgent.c

@@ -336,6 +336,10 @@ int main(int argc,char **argv)
 		FD_SET(STDIN_FILENO,&rfds);
 		FD_SET(s_bpffd,&rfds);
 		if (select(s_bpffd+1,&rfds,&wfds,&efds,(struct timeval *)0) < 0) {
+			if ((errno == EAGAIN)||(errno == EINTR)) {
+				usleep(10);
+				continue;
+			}
 			return ZT_MACETHERNETTAPAGENT_EXIT_CODE_READ_ERROR;
 		}