1 #include "DNSCommon.h" // Defines general DNS utility routines
2 #include "unittest_common.h"
4 // To match *either* a v4 or v6 instance of this interface
5 mDNSlocal mDNSInterfaceID
SearchForInterfaceByAddr(mDNSAddr
* addr
)
7 NetworkInterfaceInfoOSX
*i
;
8 for (i
= mDNSStorage
.p
->InterfaceList
; i
; i
= i
->next
)
11 if ((i
->ifinfo
.ip
.type
== mDNSAddrType_IPv4
) &&
12 i
->ifinfo
.ip
.ip
.v4
.NotAnInteger
== addr
->ip
.v4
.NotAnInteger
)
13 return i
->ifinfo
.InterfaceID
;
14 else if ((i
->ifinfo
.ip
.type
== mDNSAddrType_IPv6
) &&
15 (i
->ifinfo
.ip
.ip
.v6
.l
[0] == addr
->ip
.v6
.l
[0] &&
16 i
->ifinfo
.ip
.ip
.v6
.l
[1] == addr
->ip
.v6
.l
[1] &&
17 i
->ifinfo
.ip
.ip
.v6
.l
[2] == addr
->ip
.v6
.l
[2] &&
18 i
->ifinfo
.ip
.ip
.v6
.l
[3] == addr
->ip
.v6
.l
[3])
20 return i
->ifinfo
.InterfaceID
;
25 mDNSexport
void SetInterfaces_ut(mDNSInterfaceID
* pri_id
, mDNSAddr
*pri_v4
, mDNSAddr
* pri_v6
, mDNSAddr
* pri_router
)
27 mDNSs32 utc
= mDNSPlatformUTC();
29 MarkAllInterfacesInactive(utc
);
30 UpdateInterfaceList(utc
);
31 ClearInactiveInterfaces(utc
);
32 SetupActiveInterfaces(utc
);
34 // set primary interface info
37 NetworkChangedKey_IPv4
= SCDynamicStoreKeyCreateNetworkGlobalEntity(NULL
, kSCDynamicStoreDomainState
, kSCEntNetIPv4
);
38 NetworkChangedKey_IPv6
= SCDynamicStoreKeyCreateNetworkGlobalEntity(NULL
, kSCDynamicStoreDomainState
, kSCEntNetIPv6
);
39 NetworkChangedKey_Hostnames
= SCDynamicStoreKeyCreateHostNames(NULL
);
40 NetworkChangedKey_Computername
= SCDynamicStoreKeyCreateComputerName(NULL
);
41 NetworkChangedKey_DNS
= SCDynamicStoreKeyCreateNetworkGlobalEntity(NULL
, kSCDynamicStoreDomainState
, kSCEntNetDNS
);
42 NetworkChangedKey_StateInterfacePrefix
= SCDynamicStoreKeyCreateNetworkInterfaceEntity(NULL
, kSCDynamicStoreDomainState
, CFSTR(""), NULL
);
44 mDNSPlatformGetPrimaryInterface(pri_v4
, pri_v6
, pri_router
);
45 addr
= (pri_v4
->type
== mDNSAddrType_IPv4
) ? pri_v4
: pri_v6
;
46 *pri_id
= SearchForInterfaceByAddr(addr
);
48 CFRelease(NetworkChangedKey_IPv4
);
49 CFRelease(NetworkChangedKey_IPv6
);
50 CFRelease(NetworkChangedKey_Hostnames
);
51 CFRelease(NetworkChangedKey_Computername
);
52 CFRelease(NetworkChangedKey_DNS
);
53 CFRelease(NetworkChangedKey_StateInterfacePrefix
);
57 mDNSexport mDNSBool
mDNSMacOSXCreateEtcHostsEntry_ut(const domainname
*domain
, const struct sockaddr
*sa
, const domainname
*cname
, char *ifname
, AuthHash
*auth
)
59 return mDNSMacOSXCreateEtcHostsEntry(domain
, sa
, cname
, ifname
, auth
);
62 mDNSexport
void UpdateEtcHosts_ut(void *context
)
64 mDNS_Lock(&mDNSStorage
);
65 UpdateEtcHosts(&mDNSStorage
, context
);
66 mDNS_Unlock(&mDNSStorage
);
69 mDNSexport
void mDNSDomainLabelFromCFString_ut(CFStringRef cfs
, domainlabel
*const namelabel
)
71 mDNSDomainLabelFromCFString(cfs
, namelabel
);