mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-07 03:40:09 +00:00
Add search domain to macos dns configuration
Stumbled upon this while debugging something else. If we add search domain to our system configuration for network DNS, then search domains work: ``` ping server1 ~ PING server1.my.domain (10.123.3.1): 56 data bytes 64 bytes from 10.123.3.1 ```
This commit is contained in:
parent
fb6af1971b
commit
5b5ef07350
@ -25,19 +25,23 @@ void MacDNSHelper::setDNS(uint64_t nwid, const char *domain, const std::vector<I
|
|||||||
|
|
||||||
CFArrayRef serverArray = CFArrayCreate(NULL, (const void**)s, servers.size(), &kCFTypeArrayCallBacks);
|
CFArrayRef serverArray = CFArrayCreate(NULL, (const void**)s, servers.size(), &kCFTypeArrayCallBacks);
|
||||||
|
|
||||||
CFStringRef keys[2];
|
CFStringRef keys[3];
|
||||||
keys[0] = CFSTR("SupplementalMatchDomains");
|
keys[0] = CFSTR("SupplementalMatchDomains");
|
||||||
keys[1] = CFSTR("ServerAddresses");
|
keys[1] = CFSTR("ServerAddresses");
|
||||||
|
keys[2] = CFSTR("SearchDomains");
|
||||||
|
|
||||||
CFStringRef cfdomain = CFStringCreateWithCString(NULL, domain, kCFStringEncodingUTF8);
|
CFStringRef cfdomain = CFStringCreateWithCString(NULL, domain, kCFStringEncodingUTF8);
|
||||||
|
CFStringRef cfdomain2 = CFStringCreateWithCString(NULL, domain, kCFStringEncodingUTF8);
|
||||||
CFArrayRef domainArray = CFArrayCreate(NULL, (const void**)&cfdomain, 1, &kCFTypeArrayCallBacks);
|
CFArrayRef domainArray = CFArrayCreate(NULL, (const void**)&cfdomain, 1, &kCFTypeArrayCallBacks);
|
||||||
|
CFArrayRef domainArray2 = CFArrayCreate(NULL, (const void**)&cfdomain2, 1, &kCFTypeArrayCallBacks);
|
||||||
|
|
||||||
CFTypeRef values[2];
|
CFTypeRef values[3];
|
||||||
values[0] = domainArray;
|
values[0] = domainArray;
|
||||||
values[1] = serverArray;
|
values[1] = serverArray;
|
||||||
|
values[2] = domainArray2;
|
||||||
|
|
||||||
CFDictionaryRef dict = CFDictionaryCreate(NULL,
|
CFDictionaryRef dict = CFDictionaryCreate(NULL,
|
||||||
(const void**)keys, (const void**)values, 2, &kCFCopyStringDictionaryKeyCallBacks,
|
(const void**)keys, (const void**)values, 3, &kCFCopyStringDictionaryKeyCallBacks,
|
||||||
&kCFTypeDictionaryValueCallBacks);
|
&kCFTypeDictionaryValueCallBacks);
|
||||||
|
|
||||||
char buf[256] = {0};
|
char buf[256] = {0};
|
||||||
@ -69,7 +73,9 @@ void MacDNSHelper::setDNS(uint64_t nwid, const char *domain, const std::vector<I
|
|||||||
CFRelease(key);
|
CFRelease(key);
|
||||||
CFRelease(dict);
|
CFRelease(dict);
|
||||||
CFRelease(domainArray);
|
CFRelease(domainArray);
|
||||||
|
CFRelease(domainArray2);
|
||||||
CFRelease(cfdomain);
|
CFRelease(cfdomain);
|
||||||
|
CFRelease(cfdomain2);
|
||||||
CFRelease(serverArray);
|
CFRelease(serverArray);
|
||||||
for (int i = 0; i < servers.size(); ++i) {
|
for (int i = 0; i < servers.size(); ++i) {
|
||||||
CFRelease(s[i]);
|
CFRelease(s[i]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user