summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/mDNSCore
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-19 08:54:52 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-20 11:23:33 +0200
commit7d33d36d73d2e902b107fb597e84e44ab11274a9 (patch)
tree7ef04cf1c29216f342da8e5ee69de7c1290959aa /mDNSResponder/mDNSCore
parentmDNSResponder: Update to v765.20.4 (diff)
downloadrtems-libbsd-7d33d36d73d2e902b107fb597e84e44ab11274a9.tar.bz2
mDNSResponder: Update to v765.30.11
The sources can be obtained via: https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-765.30.11.tar.gz Update #3522.
Diffstat (limited to 'mDNSResponder/mDNSCore')
-rw-r--r--mDNSResponder/mDNSCore/dnsproxy.c21
-rwxr-xr-xmDNSResponder/mDNSCore/mDNSEmbeddedAPI.h2
-rwxr-xr-xmDNSResponder/mDNSCore/uDNS.c5
3 files changed, 15 insertions, 13 deletions
diff --git a/mDNSResponder/mDNSCore/dnsproxy.c b/mDNSResponder/mDNSCore/dnsproxy.c
index 05b70dd9..5376d3c8 100644
--- a/mDNSResponder/mDNSCore/dnsproxy.c
+++ b/mDNSResponder/mDNSCore/dnsproxy.c
@@ -195,6 +195,8 @@ mDNSlocal mDNSu8 *AddResourceRecords(mDNS *const m, DNSProxyClient *pc, mDNSu8 *
CacheRecord *soa = mDNSNULL;
CacheRecord *cname = mDNSNULL;
mDNSu8 *limit;
+ domainname tempQName;
+ mDNSu32 tempQNameHash;
*error = mStatus_NoError;
*prevptr = mDNSNULL;
@@ -222,20 +224,17 @@ mDNSlocal mDNSu8 *AddResourceRecords(mDNS *const m, DNSProxyClient *pc, mDNSu8 *
}
LogInfo("AddResourceRecords: Limit is %d", limit - m->omsg.data);
- if (!SameDomainName(&pc->qname, &pc->q.qname))
- {
- AssignDomainName(&pc->q.qname, &pc->qname);
- pc->q.qnamehash = DomainNameHashValue(&pc->q.qname);
- }
+ AssignDomainName(&tempQName, &pc->qname);
+ tempQNameHash = DomainNameHashValue(&tempQName);
again:
nsec = soa = cname = mDNSNULL;
- slot = HashSlot(&pc->q.qname);
-
- cg = CacheGroupForName(m, slot, pc->q.qnamehash, &pc->q.qname);
+ slot = HashSlot(&tempQName);
+
+ cg = CacheGroupForName(m, slot, tempQNameHash, &tempQName);
if (!cg)
{
- LogInfo("AddResourceRecords: CacheGroup not found");
+ LogInfo("AddResourceRecords: CacheGroup not found for %##s", tempQName.c);
*error = mStatus_NoSuchRecord;
return mDNSNULL;
}
@@ -344,8 +343,8 @@ again:
}
if (cname)
{
- AssignDomainName(&pc->q.qname, &cname->resrec.rdata->u.name);
- pc->q.qnamehash = DomainNameHashValue(&pc->q.qname);
+ AssignDomainName(&tempQName, &cname->resrec.rdata->u.name);
+ tempQNameHash = DomainNameHashValue(&tempQName);
goto again;
}
if (!ptr)
diff --git a/mDNSResponder/mDNSCore/mDNSEmbeddedAPI.h b/mDNSResponder/mDNSCore/mDNSEmbeddedAPI.h
index 3fd654eb..248b848f 100755
--- a/mDNSResponder/mDNSCore/mDNSEmbeddedAPI.h
+++ b/mDNSResponder/mDNSCore/mDNSEmbeddedAPI.h
@@ -3376,7 +3376,7 @@ extern mDNSu8 *DNSProxySetAttributes(DNSQuestion *q, DNSMessageHeader *h, DNSMes
#if APPLE_OSX_mDNSResponder
extern void mDNSPlatformGetDNSRoutePolicy(mDNS *const m, DNSQuestion *q, mDNSBool *isBlocked);
#endif
-extern void mDNSPlatformSetSocktOpt(void *sock, mDNSTransport_Type transType, mDNSAddr_Type addrType, DNSQuestion *q);
+extern void mDNSPlatformSetSocktOpt(void *sock, mDNSTransport_Type transType, mDNSAddr_Type addrType, const DNSQuestion *q);
extern mDNSs32 mDNSPlatformGetPID(void);
extern mDNSBool mDNSValidKeepAliveRecord(AuthRecord *rr);
diff --git a/mDNSResponder/mDNSCore/uDNS.c b/mDNSResponder/mDNSCore/uDNS.c
index 694c745c..5848e1e1 100755
--- a/mDNSResponder/mDNSCore/uDNS.c
+++ b/mDNSResponder/mDNSCore/uDNS.c
@@ -4737,7 +4737,10 @@ mDNSexport void uDNS_CheckCurrentQuestion(mDNS *const m)
{
q->LocalSocket = mDNSPlatformUDPSocket(m, zeroIPPort);
if (q->LocalSocket)
- mDNSPlatformSetSocktOpt(q->LocalSocket, mDNSTransport_UDP, q->qDNSServer->addr.type, q);
+ {
+ mDNSPlatformSetSocktOpt(q->LocalSocket, mDNSTransport_UDP, mDNSAddrType_IPv4, q);
+ mDNSPlatformSetSocktOpt(q->LocalSocket, mDNSTransport_UDP, mDNSAddrType_IPv6, q);
+ }
}
if (!q->LocalSocket) err = mStatus_NoMemoryErr; // If failed to make socket (should be very rare), we'll try again next time
else