From c56831767eb8ee31b34964ffcb06f2d77e60e59a Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 25 Oct 2018 20:44:32 -0700 Subject: [PATCH] Fix Mac tap agent abort on EINTR. --- make-mac.mk | 9 +-------- osdep/MacEthernetTapAgent.c | 4 ++++ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/make-mac.mk b/make-mac.mk index bb5b15479..4363d38fb 100644 --- a/make-mac.mk +++ b/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: diff --git a/osdep/MacEthernetTapAgent.c b/osdep/MacEthernetTapAgent.c index 871b3d402..ca1f7a4ec 100644 --- a/osdep/MacEthernetTapAgent.c +++ b/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; }