#include <SystemConfiguration/SystemConfiguration.h>
#include <stdarg.h>
CFStringRef
SCDKeyCreate(CFStringRef fmt, ...)
{
va_list args;
va_start(args, fmt);
return (CFStringCreateWithFormatAndArguments(NULL,
NULL,
fmt,
args));
}
CFStringRef
SCDKeyCreateNetworkGlobalEntity(CFStringRef domain, CFStringRef entity)
{
return (CFStringCreateWithFormat(NULL,
NULL,
CFSTR("%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompGlobal,
entity));
}
CFStringRef
SCDKeyCreateNetworkInterface(CFStringRef domain)
{
return (CFStringCreateWithFormat(NULL,
NULL,
CFSTR("%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompInterface));
}
CFStringRef
SCDKeyCreateNetworkInterfaceEntity(CFStringRef domain,
CFStringRef ifname,
CFStringRef entity)
{
if (entity == NULL) {
return (CFStringCreateWithFormat(NULL,
NULL,
CFSTR("%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompInterface,
ifname));
} else {
return (CFStringCreateWithFormat(NULL,
NULL,
CFSTR("%@/%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompInterface,
ifname,
entity));
}
}
CFStringRef
SCDKeyCreateNetworkServiceEntity(CFStringRef domain,
CFStringRef serviceID,
CFStringRef entity)
{
if (entity == NULL) {
return (CFStringCreateWithFormat(NULL,
NULL,
CFSTR("%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompService,
serviceID));
} else {
return (CFStringCreateWithFormat(NULL,
NULL,
CFSTR("%@/%@/%@/%@/%@"),
domain,
kSCCompNetwork,
kSCCompService,
serviceID,
entity));
}
}