Fix Mac tap agent abort on EINTR.

This commit is contained in:
Adam Ierymenko 2018-10-25 20:44:32 -07:00
parent 72a724f075
commit c56831767e
2 changed files with 5 additions and 8 deletions

View File

@ -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 $(CC) $(CFLAGS) -c ext/x64-salsa2012-asm/salsa2012.s -o ext/x64-salsa2012-asm/salsa2012.o
mac-agent: FORCE 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 $(CODESIGN) -f -s $(CODESIGN_APP_CERT) MacEthernetTapAgent
one: $(CORE_OBJS) $(ONE_OBJS) one.o mac-agent one: $(CORE_OBJS) $(ONE_OBJS) one.o mac-agent
@ -138,11 +138,4 @@ distclean: clean
realclean: 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: FORCE:

View File

@ -336,6 +336,10 @@ int main(int argc,char **argv)
FD_SET(STDIN_FILENO,&rfds); FD_SET(STDIN_FILENO,&rfds);
FD_SET(s_bpffd,&rfds); FD_SET(s_bpffd,&rfds);
if (select(s_bpffd+1,&rfds,&wfds,&efds,(struct timeval *)0) < 0) { 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; return ZT_MACETHERNETTAPAGENT_EXIT_CODE_READ_ERROR;
} }