Почему SCDynamicStoreSetValue не хранит значение? - PullRequest
0 голосов
/ 02 декабря 2018

Во время выполнения этого кода в среде iOS с джейлбрейком (11.3.1) новое значение DNS не сохраняется:

SCDynamicStoreRef store = SCDynamicStoreCreate(kCFAllocatorDefault, CFSTR("init_by_defaults_systemconfiguration"), NULL, NULL);
CFStringRef key = CFSTR("State:/Network/Global/DNS");
CFDictionaryRef dnsDict = (CFDictionaryRef)SCDynamicStoreCopyValue(store, key);

//Create new values
CFMutableDictionaryRef newdnsDict = CFDictionaryCreateMutableCopy(NULL,0,dnsDict);

CFMutableArrayRef newdnsServerAddresses = CFArrayCreateMutable(NULL,0,NULL);
CFArrayAppendValue(newdnsServerAddresses, CFSTR("8.8.8.8"));
CFArrayAppendValue(newdnsServerAddresses, CFSTR("8.8.4.4"));

CFDictionarySetValue(newdnsDict, CFSTR("ServerAddresses"), newdnsServerAddresses);

SCDynamicStoreSetValue(store, key, newdnsDict);

//Clean up
CFRelease(store);
CFRelease(key);
CFRelease(dnsDict);
CFRelease(newdnsServerAddresses);
CFRelease(newdnsDict);

Я знаю, что значение не сохраняется с момента запуска

scutil --dns

Я не вижу новые значения DNS.

...