From 85a5b0b9482c3fd9dd179f0fad917d454998f8bd Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Wed, 5 Aug 2020 14:49:45 -0700 Subject: [PATCH] Remove dns config on shutdown Also add calls to MacDNSHelper to the kext tap --- osdep/MacEthernetTap.cpp | 2 ++ osdep/MacKextEthernetTap.cpp | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/osdep/MacEthernetTap.cpp b/osdep/MacEthernetTap.cpp index fb49bad61..ae07e66a3 100644 --- a/osdep/MacEthernetTap.cpp +++ b/osdep/MacEthernetTap.cpp @@ -202,6 +202,8 @@ MacEthernetTap::MacEthernetTap( MacEthernetTap::~MacEthernetTap() { + MacDNSHelper::removeDNS(_nwid); + Mutex::Lock _gl(globalTapCreateLock); ::write(_shutdownSignalPipe[1],"\0",1); // causes thread to exit Thread::join(_thread); diff --git a/osdep/MacKextEthernetTap.cpp b/osdep/MacKextEthernetTap.cpp index a04c2ac9b..ea26b53c1 100644 --- a/osdep/MacKextEthernetTap.cpp +++ b/osdep/MacKextEthernetTap.cpp @@ -43,6 +43,8 @@ #include #include +#include "MacDNSHelper.hpp" + // OSX compile fix... in6_var defines this in a struct which namespaces it for C++ ... why?!? struct prf_ra { u_char onlink : 1; @@ -441,6 +443,8 @@ MacKextEthernetTap::MacKextEthernetTap( MacKextEthernetTap::~MacKextEthernetTap() { + MacDNSHelper::removeDNS(_nwid); + ::write(_shutdownSignalPipe[1],"\0",1); // causes thread to exit Thread::join(_thread); @@ -689,7 +693,7 @@ void MacKextEthernetTap::threadMain() void MacKextEthernetTap::setDns(const char *domain, const std::vector &servers) { - + MacDNSHelper::setDNS(_nwid, domain, servers); } } // namespace ZeroTier