#include <SystemConfiguration/SystemConfiguration.h>
#include <SystemConfiguration/SCValidation.h>
#include <SystemConfiguration/SCPrivate.h>
CFStringRef
SCDynamicStoreKeyCreateLocation(CFAllocatorRef allocator)
{
return CFRetain(kSCDynamicStoreDomainSetup);
}
CFStringRef
SCDynamicStoreCopyLocation(SCDynamicStoreRef store)
{
CFDictionaryRef dict = NULL;
CFStringRef key;
CFStringRef location = NULL;
Boolean tempSession = FALSE;
if (store == NULL) {
store = SCDynamicStoreCreate(NULL,
CFSTR("SCDynamicStoreCopyLocation"),
NULL,
NULL);
if (store == NULL) {
SCLog(_sc_verbose, LOG_INFO, CFSTR("SCDynamicStoreCreate() failed"));
return NULL;
}
tempSession = TRUE;
}
key = SCDynamicStoreKeyCreateLocation(NULL);
dict = SCDynamicStoreCopyValue(store, key);
CFRelease(key);
if (!isA_CFDictionary(dict)) {
_SCErrorSet(kSCStatusNoKey);
goto done;
}
location = CFDictionaryGetValue(dict, kSCDynamicStorePropSetupCurrentSet);
if (!isA_CFString(location)) {
_SCErrorSet(kSCStatusNoKey);
goto done;
}
CFRetain(location);
done :
if (tempSession) CFRelease(store);
if (dict) CFRelease(dict);
return location;
}