#include <SystemConfiguration/SystemConfiguration.h>
#include <stdarg.h>
CFStringRef
SCDynamicStoreKeyCreate(CFAllocatorRef allocator,
CFStringRef fmt,
...)
{
va_list args;
CFStringRef result;
va_start(args, fmt);
result = CFStringCreateWithFormatAndArguments(allocator,
NULL,
fmt,
args);
va_end(args);
return result;
}
CFStringRef
SCDynamicStoreKeyCreateNetworkGlobalEntity(CFAllocatorRef allocator,
CFStringRef domain,
CFStringRef entity)
{
return (CFStringCreateWithFormat(allocator,
NULL,
CFSTR("%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompGlobal,
entity));
}
CFStringRef
SCDynamicStoreKeyCreateNetworkInterface(CFAllocatorRef allocator,
CFStringRef domain)
{
return (CFStringCreateWithFormat(allocator,
NULL,
CFSTR("%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompInterface));
}
CFStringRef
SCDynamicStoreKeyCreateNetworkInterfaceEntity(CFAllocatorRef allocator,
CFStringRef domain,
CFStringRef ifname,
CFStringRef entity)
{
if (entity == NULL) {
return (CFStringCreateWithFormat(allocator,
NULL,
CFSTR("%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompInterface,
ifname));
} else {
return (CFStringCreateWithFormat(allocator,
NULL,
CFSTR("%@/%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompInterface,
ifname,
entity));
}
}
CFStringRef
SCDynamicStoreKeyCreateNetworkServiceEntity(CFAllocatorRef allocator,
CFStringRef domain,
CFStringRef serviceID,
CFStringRef entity)
{
if (entity == NULL) {
return (CFStringCreateWithFormat(allocator,
NULL,
CFSTR("%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompService,
serviceID));
} else {
return (CFStringCreateWithFormat(allocator,
NULL,
CFSTR("%@/%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompService,
serviceID,
entity));
}
}