Lines Matching defs:InterfaceID

69 mDNSlocal void SendWakeup(mDNS *const m, mDNSInterfaceID InterfaceID, mDNSEthAddr *EthAddr, mDNSOpaque48 *password);
82 const mDNSInterfaceID InterfaceID, CacheRecord **NSEC3Records);
355 mDNSexport mDNSBool mDNS_AddressIsLocalSubnet(mDNS *const m, const mDNSInterfaceID InterfaceID, const mDNSAddr *addr, mDNSBool *myself)
364 if (intf->ip.type == addr->type && intf->InterfaceID == InterfaceID && intf->McastTxRx)
385 if (intf->ip.type == addr->type && intf->InterfaceID == InterfaceID && intf->McastTxRx)
409 mDNSlocal NetworkInterfaceInfo *FirstInterfaceForID(mDNS *const m, const mDNSInterfaceID InterfaceID)
412 while (intf && intf->InterfaceID != InterfaceID) intf = intf->next;
416 mDNSlocal NetworkInterfaceInfo *FirstIPv4LLInterfaceForID(mDNS *const m, const mDNSInterfaceID InterfaceID)
420 if (!InterfaceID)
427 if (intf->InterfaceID == InterfaceID &&
437 mDNSexport char *InterfaceNameForID(mDNS *const m, const mDNSInterfaceID InterfaceID)
439 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, InterfaceID);
521 q->InterfaceID = mDNSInterface_Unicast;
669 ((RR)->resrec.InterfaceID == mDNSInterface_Any || (RR)->resrec.InterfaceID == (INTID)))
735 if (r1->resrec.InterfaceID &&
736 r2->resrec.InterfaceID &&
737 r1->resrec.InterfaceID != r2->resrec.InterfaceID) return(mDNSfalse);
756 if (pktrr->resrec.InterfaceID &&
757 authrr->resrec.InterfaceID &&
758 pktrr->resrec.InterfaceID != authrr->resrec.InterfaceID) return(mDNSfalse);
1059 ((A)->resrec.InterfaceID == (B)->resrec.InterfaceID && RecordLDT((A),(B)) && IdenticalResourceRecord(& (A)->resrec, & (B)->resrec))
1198 mDNSInterfaceID previousID = rr->resrec.InterfaceID;
1199 if (rr->resrec.InterfaceID == mDNSInterface_Any || rr->resrec.InterfaceID == mDNSInterface_P2P)
1201 rr->resrec.InterfaceID = mDNSInterface_LocalOnly;
1204 if (rr->resrec.InterfaceID != mDNSInterface_LocalOnly)
1206 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, rr->resrec.InterfaceID);
1207 if (intf && !intf->Advertise) { rr->resrec.InterfaceID = mDNSInterface_LocalOnly; rr->ARType = AuthRecordLocalOnly; }
1209 if (rr->resrec.InterfaceID != previousID)
1385 LogInfo("mDNS_Register_internal: Name conflict %s (%p), InterfaceID %p", ARDisplayString(m, rr), rr, rr->resrec.InterfaceID);
1807 mDNSlocal void AddAdditionalsToResponseList(mDNS *const m, AuthRecord *ResponseRecords, AuthRecord ***nrpp, const mDNSInterfaceID InterfaceID)
1814 if (rr->Additional1 && ResourceRecordIsValidInterfaceAnswer(rr->Additional1, InterfaceID))
1817 if (rr->Additional2 && ResourceRecordIsValidInterfaceAnswer(rr->Additional2, InterfaceID))
1825 ResourceRecordIsValidInterfaceAnswer(rr2, InterfaceID) && // ... which are valid for answer ...
1834 ResourceRecordIsValidInterfaceAnswer(rr2, InterfaceID) && // ... which are valid for answer ...
1841 if (ResourceRecordIsValidInterfaceAnswer(&m->DeviceInfo, InterfaceID) &&
1856 mDNSlocal void SendDelayedUnicastResponse(mDNS *const m, const mDNSAddr *const dest, const mDNSInterfaceID InterfaceID)
1861 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, InterfaceID);
1873 if (rr->ImmedUnicast && rr->ImmedAnswer == InterfaceID)
1886 LogInfo("SendDelayedUnicastResponse: Not sending %s, on %s", ARDisplayString(m, rr), InterfaceNameForID(m, InterfaceID));
1900 AddAdditionalsToResponseList(m, ResponseRecords, &nrp, InterfaceID);
1949 debugf("SendDelayedUnicastResponse: Added NSEC3 Record %s on %p", RRDisplayString(m, nsec3RR), intf->InterfaceID);
1954 LogMsg("SendDelayedUnicastResponse: ERROR!! Cannot Add NSEC3 Record %s on %p", RRDisplayString(m, nsec3RR), intf->InterfaceID);
1979 mDNSSendDNSMessage(m, &m->omsg, responseptr, InterfaceID, mDNSNULL, dest, MulticastDNSPort, mDNSNULL, mDNSNULL, mDNSfalse);
2092 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, rr->resrec.InterfaceID);
2093 if (!intf) { LogMsg("SendARP: No interface with InterfaceID %p found %s", rr->resrec.InterfaceID, ARDisplayString(m,rr)); return; }
2124 mDNSPlatformSendRawPacket(m->omsg.data, ptr, rr->resrec.InterfaceID);
2163 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, rr->resrec.InterfaceID);
2164 if (!intf) { LogMsg("SendNDP: No interface with InterfaceID %p found %s", rr->resrec.InterfaceID, ARDisplayString(m,rr)); return; }
2249 mDNSPlatformSendRawPacket(m->omsg.data, ptr, rr->resrec.InterfaceID);
2302 debugf("ShouldSendGoodbyesBeforeSleep: not sending goodbye %s, int %p", ARDisplayString(m, rr), intf->InterfaceID);
2307 debugf("ShouldSendGoodbyesBeforeSleep: sending goodbye %s, int %p", ARDisplayString(m, rr), intf->InterfaceID);
2374 SendWakeup(m, rr->resrec.InterfaceID, &rr->WakeUp.IMAC, &rr->WakeUp.password);
2376 if (r2->AnnounceCount && r2->resrec.InterfaceID == rr->resrec.InterfaceID && mDNSSameEthAddress(&r2->WakeUp.IMAC, &rr->WakeUp.IMAC) &&
2430 if ((rr->resrec.InterfaceID && rr->ImmedAnswer) ||
2438 // Note: Currently all address records are interface-specific, so it's safe to set ImmedAdditional to their InterfaceID,
2450 (rr->ImmedAnswer == mDNSInterfaceMark || rr->ImmedAnswer == r2->resrec.InterfaceID))
2451 r2->ImmedAdditional = r2->resrec.InterfaceID; // ... then mark this address record for sending too
2494 rr->SendRNow = !intf ? mDNSNULL : (rr->resrec.InterfaceID) ? rr->resrec.InterfaceID : intf->InterfaceID;
2542 // Skip this interface if the record InterfaceID is *Any and the record is not
2544 if ((rr->SendRNow == intf->InterfaceID) &&
2545 ((rr->resrec.InterfaceID == mDNSInterface_Any) && !mDNSPlatformValidRecordForInterface(rr, intf)))
2550 else if (rr->SendRNow == intf->InterfaceID)
2606 rr->resrec.AnonInfo->SendNow = intf->InterfaceID;
2610 if (rr->ImmedAnswer == mDNSInterfaceMark && rr->resrec.InterfaceID == mDNSInterface_Any)
2624 if (rr->resrec.AnonInfo && rr->resrec.AnonInfo->SendNow == intf->InterfaceID)
2646 if (rr->ImmedAdditional == intf->InterfaceID)
2660 a->LastMCInterface == intf->InterfaceID &&
2686 rr->LastMCInterface = intf->InterfaceID;
2693 // (recognized by rr->SendNSECNow == intf->InterfaceID) we should really put the NSEC in the Answer Section,
2696 if (rr->SendNSECNow == mDNSInterfaceMark || rr->SendNSECNow == intf->InterfaceID)
2738 if (r2->SendNSECNow == mDNSInterfaceMark || r2->SendNSECNow == intf->InterfaceID)
2790 m->omsg.h.numAdditionals, m->omsg.h.numAdditionals == 1 ? "" : "s", intf->InterfaceID);
2792 if (intf->IPv4Available) mDNSSendDNSMessage(m, &m->omsg, responseptr, intf->InterfaceID, mDNSNULL, &AllDNSLinkGroup_v4, MulticastDNSPort, mDNSNULL, mDNSNULL, mDNSfalse);
2793 if (intf->IPv6Available) mDNSSendDNSMessage(m, &m->omsg, responseptr, intf->InterfaceID, mDNSNULL, &AllDNSLinkGroup_v6, MulticastDNSPort, mDNSNULL, mDNSNULL, mDNSfalse);
2826 (uint32_t)rr->SendRNow, (uint32_t)rr->resrec.InterfaceID, rr->resrec.RecordType, ARDisplayString(m, rr));
2954 if (rr->resrec.InterfaceID == q->SendQNow && // received on this interface
2992 if (rr->resrec.InterfaceID == q->SendQNow && // received on this interface
3115 for (i=0; i<DupSuppressInfoSize; i++) if (ds[i].Time - time < 0) ds[i].InterfaceID = mDNSNULL;
3118 mDNSlocal void ExpireDupSuppressInfoOnInterface(DupSuppressInfo ds[DupSuppressInfoSize], mDNSs32 time, mDNSInterfaceID InterfaceID)
3121 for (i=0; i<DupSuppressInfoSize; i++) if (ds[i].InterfaceID == InterfaceID && ds[i].Time - time < 0) ds[i].InterfaceID = mDNSNULL;
3130 if (ds[i].InterfaceID == intf->InterfaceID)
3139 mDNSlocal int RecordDupSuppressInfo(DupSuppressInfo ds[DupSuppressInfoSize], mDNSs32 Time, mDNSInterfaceID InterfaceID, mDNSs32 Type)
3144 for (i=0; i<DupSuppressInfoSize; i++) if (ds[i].InterfaceID == InterfaceID && ds[i].Type == Type) break;
3150 for (j=1; j<DupSuppressInfoSize && ds[i].InterfaceID; j++)
3151 if (!ds[j].InterfaceID || ds[j].Time - ds[i].Time < 0)
3157 ds[i].InterfaceID = InterfaceID;
3166 mDNSInterfaceID InterfaceID = q->InterfaceID;
3170 if (InterfaceID == mDNSInterface_Any || InterfaceID == mDNSInterface_LocalOnly || InterfaceID == mDNSInterface_P2P)
3172 LogMsg("mDNSSendWakeOnResolve: ERROR!! Invalid InterfaceID %p for question %##s", InterfaceID, q->qname.c);
3206 mDNSPlatformSendWakeupPacket(m, InterfaceID, EthAddr, IPAddr, InitialWakeOnResolveCount - q->WakeOnResolveCount);
3283 ExpireDupSuppressInfoOnInterface(q->DupSuppress, m->timenow - TicksTTL(cr)/20, cr->resrec.InterfaceID);
3298 q->SendQNow = cr->resrec.InterfaceID;
3300 else if (q->SendQNow != cr->resrec.InterfaceID)
3432 q->SendQNow = !intf ? mDNSNULL : (q->InterfaceID) ? q->InterfaceID : intf->InterfaceID;
3477 LogSPS("SendQueries ARP Probe %d %s %s", ar->ProbeCount, InterfaceNameForID(m, ar->resrec.InterfaceID), ARDisplayString(m,ar));
3482 LogSPS("SendQueries NDP Probe %d %s %s", ar->ProbeCount, InterfaceNameForID(m, ar->resrec.InterfaceID), ARDisplayString(m,ar));
3490 ar->SendRNow = (!intf || ar->WakeUp.HMAC.l[0]) ? mDNSNULL : ar->resrec.InterfaceID ? ar->resrec.InterfaceID : intf->InterfaceID;
3558 if (mDNSOpaque16IsZero(q->TargetQID) && (q->SendQNow == intf->InterfaceID))
3568 LogInfo("SendQueries: Not sending (%s) %##s on %s", DNSTypeName(q->qtype), q->qname.c, InterfaceNameForID(m, intf->InterfaceID));
3569 q->SendQNow = (q->InterfaceID || !q->SendOnAll) ? mDNSNULL : GetNextActiveInterfaceID(intf);
3588 q->AnonInfo->SendNow = intf->InterfaceID;
3590 q->SendQNow = (q->InterfaceID || !q->SendOnAll) ? mDNSNULL : GetNextActiveInterfaceID(intf);
3608 if (ar->SendRNow == intf->InterfaceID)
3620 ar->SendRNow = (ar->resrec.InterfaceID) ? mDNSNULL : GetNextActiveInterfaceID(intf);
3667 if (q->AnonInfo && q->AnonInfo->SendNow == intf->InterfaceID)
3672 debugf("SendQueries: Added NSEC3 record %s on InterfaceID %p", RRDisplayString(m, q->AnonInfo->nsec3RR), intf->InterfaceID);
3677 LogMsg("SendQueries: ERROR!! Cannot add NSEC3 record %s on InterfaceID %p", RRDisplayString(m, q->AnonInfo->nsec3RR), intf->InterfaceID);
3730 m->omsg.h.numAuthorities, m->omsg.h.numAuthorities == 1 ? "" : "s", intf->InterfaceID);
3731 if (intf->IPv4Available) mDNSSendDNSMessage(m, &m->omsg, queryptr, intf->InterfaceID, mDNSNULL, &AllDNSLinkGroup_v4, MulticastDNSPort, mDNSNULL, mDNSNULL, useBackgroundTrafficClass);
3732 if (intf->IPv6Available) mDNSSendDNSMessage(m, &m->omsg, queryptr, intf->InterfaceID, mDNSNULL, &AllDNSLinkGroup_v6, MulticastDNSPort, mDNSNULL, mDNSNULL, useBackgroundTrafficClass);
3758 (uint32_t)ar->SendRNow, (uint32_t)ar->resrec.InterfaceID, ARDisplayString(m, ar));
3790 (uint32_t)q->SendQNow, x ? "new" : "old", (uint32_t)q->InterfaceID, q->qname.c, DNSTypeName(q->qtype));
3797 mDNSlocal void SendWakeup(mDNS *const m, mDNSInterfaceID InterfaceID, mDNSEthAddr *EthAddr, mDNSOpaque48 *password)
3801 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, InterfaceID);
3802 if (!intf) { LogMsg("SendARP: No interface with InterfaceID %p found", InterfaceID); return; }
3823 mDNSPlatformSendRawPacket(m->omsg.data, ptr, InterfaceID);
3831 mDNSPlatformSendRawPacket(m->omsg.data, ptr, InterfaceID);
3950 MakeNegativeCacheRecord(m, &neg, &q->qname, q->qnamehash, q->qtype, q->qclass, 1, rr->resrec.InterfaceID, q->qDNSServer);
4048 if (purge && !rr->resrec.InterfaceID && !rr->CRActiveQuestion && rr->resrec.rroriginalttl)
4293 if (!rr->resrec.InterfaceID)
4336 if (!r->resrec.InterfaceID)
4458 if (rr->ARType == AuthRecordLocalOnly || (rr->ARType == AuthRecordP2P && q->InterfaceID == mDNSInterface_Any))
4924 SetSPSProxyListChanged(rr->resrec.InterfaceID);
5564 if (intf->McastTxRx && !intf->Loopback && !mDNSPlatformInterfaceIsD2D(intf->InterfaceID))
5624 // Note: scopeid is the same as intf->InterfaceID. It is passed in so that we don't have to call the
5628 (!rr->resrec.InterfaceID || rr->resrec.InterfaceID == intf->InterfaceID))
5711 if ((intf != mDNSNULL) && (mti.IntfId != intf->InterfaceID))
5713 LogInfo("mDNSPlatformRetrieveTCPInfo: InterfaceID mismatch mti.IntfId = %p InterfaceID = %p", mti.IntfId, intf->InterfaceID);
5765 scopeid = mDNSPlatformInterfaceIndexfromInterfaceID(m, intf->InterfaceID, mDNStrue);
5791 if (rr->resrec.InterfaceID == intf->InterfaceID || (!rr->resrec.InterfaceID && (rr->ForceMCast || IsLocalDomain(rr->resrec.name))))
5890 err = mDNSSendDNSMessage(m, &m->omsg, p, intf->InterfaceID, mDNSNULL, &intf->SPSAddr[sps], intf->SPSPort[sps], mDNSNULL, mDNSNULL, mDNSfalse);
5917 mDNSlocal void mDNSCoreStoreProxyRR(mDNS *const m, const mDNSInterfaceID InterfaceID, AuthRecord *const rr)
5928 mDNS_SetupResourceRecord(newRR, mDNSNULL, InterfaceID, rr->resrec.rrtype,
5988 if (!ar->resrec.InterfaceID)
5997 mDNSu32 scopeid = mDNSPlatformInterfaceIndexfromInterfaceID(m, ar->resrec.InterfaceID, mDNStrue);
6013 mDNSCoreStoreProxyRR(m, ar->resrec.InterfaceID, ar);
6053 mDNSu32 scopeid = mDNSPlatformInterfaceIndexfromInterfaceID(m, intf->InterfaceID, mDNStrue);
6055 (!rr->resrec.InterfaceID || rr->resrec.InterfaceID == intf->InterfaceID))
6201 if ((newIntf->InterfaceID != intfid) ||
6210 if ((intf->InterfaceID != regID[i]) ||
6274 if (!intf->McastTxRx || mDNSPlatformInterfaceIsD2D(intf->InterfaceID))
6296 if (skipSameSubnetRegistration(m, registeredIntfIDS, registeredCount, intf->InterfaceID))
6315 registeredIntfIDS[registeredCount] = intf->InterfaceID;
6341 scopeid = mDNSPlatformInterfaceIndexfromInterfaceID(m, intf->InterfaceID, mDNStrue);
6361 mDNS_SetupQuestion(&intf->NetWakeResolve[i], intf->InterfaceID, &sps[i]->resrec.rdata->u.name, kDNSType_SRV, NetWakeResolve, intf);
6366 registeredIntfIDS[registeredCount] = intf->InterfaceID;
6537 if (!cr->resrec.InterfaceID)
6766 const mDNSInterfaceID InterfaceID, mDNSBool LegacyQuery, DNSMessage *const response, AuthRecord *ResponseRecords)
6787 ptr = getQuestion(query, ptr, end, InterfaceID, &q); // get the question...
6953 ptr = GetLargeResourceRecord(m, query, ptr, end, q->InterfaceID, kDNSRecordTypePacketAuth, &m->rec);
6966 LogMsg("ResolveSimultaneousProbe: %p Pkt Record: %08lX %s", q->InterfaceID, m->rec.r.resrec.rdatahash, CRDisplayString(m, &m->rec.r));
6967 LogMsg("ResolveSimultaneousProbe: %p Our Record %d %s %08lX %s", our->resrec.InterfaceID, our->ProbeCount, msg, our->resrec.rdatahash, ARDisplayString(m, our));
6984 LogMsg("ResolveSimultaneousProbe: %p Pkt Record: %08lX %s", q->InterfaceID, m->rec.r.resrec.rdatahash, CRDisplayString(m, &m->rec.r));
6985 LogMsg("ResolveSimultaneousProbe: %p Our Record %d ign: %08lX %s", our->resrec.InterfaceID, our->ProbeCount, our->resrec.rdatahash, ARDisplayString(m, our));
7005 if (!pktrr->InterfaceID)
7011 else match = (pktrr->InterfaceID == rr->resrec.InterfaceID);
7022 SetSPSProxyListChanged(m->rec.r.resrec.InterfaceID);
7025 mDNSlocal void ClearKeepaliveProxyRecords(mDNS *const m, const OwnerOptData *const owner, AuthRecord *const thelist, const mDNSInterfaceID InterfaceID)
7036 if (InterfaceID == rr->resrec.InterfaceID && mDNSSameEthAddress(&owner->HMAC, &rr->WakeUp.HMAC))
7062 if (m->rec.r.resrec.InterfaceID == rr->resrec.InterfaceID && mDNSSameEthAddress(&owner->HMAC, &rr->WakeUp.HMAC))
7085 if (m->rec.r.resrec.InterfaceID == rr->resrec.InterfaceID && mDNSSameEthAddress(&owner->HMAC, &rr->WakeUp.HMAC))
7106 SetSPSProxyListChanged(m->rec.r.resrec.InterfaceID);
7117 const mDNSAddr *srcaddr, const mDNSInterfaceID InterfaceID, mDNSBool LegacyQuery, mDNSBool QueryWasMulticast,
7120 mDNSBool FromLocalSubnet = srcaddr && mDNS_AddressIsLocalSubnet(m, InterfaceID, srcaddr, mDNSNULL);
7145 ptr = GetLargeResourceRecord(m, query, ptr, end, InterfaceID, kDNSRecordTypePacketAdd, &m->rec);
7166 mDNSParseNSEC3Records(m, query, end, InterfaceID, &McastNSEC3Records);
7178 ptr = getQuestion(query, ptr, end, InterfaceID, &pktq); // get the question...
7248 (rr->LastMCInterface != mDNSInterfaceMark && rr->LastMCInterface != InterfaceID))
7266 NSECAnswer->SendNSECNow = InterfaceID;
7331 if (!q->InterfaceID || q->InterfaceID == InterfaceID)
7355 AddAdditionalsToResponseList(m, ResponseRecords, &nrp, InterfaceID);
7364 ptr = GetLargeResourceRecord(m, query, ptr, end, InterfaceID, kDNSRecordTypePacketAns, &m->rec);
7383 if (rr->ImmedAnswer == InterfaceID && ShouldSuppressKnownAnswer(&m->rec.r, rr))
7424 if (cr->resrec.InterfaceID == InterfaceID && IdenticalResourceRecord(&m->rec.r.resrec, &cr->resrec))
7507 if (rr->ImmedAnswer && rr->ImmedAnswer != InterfaceID)
7511 rr->ImmedAnswer = InterfaceID; // Record interface to send it on
7537 rr->ImmedAdditional = InterfaceID;
7578 responseptr = GenerateUnicastResponse(query, end, InterfaceID, LegacyQuery, response, ResponseRecords);
7670 i = RecordDupSuppressInfo(q->DupSuppress, m->timenow, InterfaceID, srcaddr->type);
7671 debugf("ProcessQuery: Recorded DSI for %##s (%s) on %p/%s %d", q->qname.c, DNSTypeName(q->qtype), InterfaceID,
7686 const mDNSInterfaceID InterfaceID)
7690 !mDNSAddrIsDNSMulticast(dstaddr) && mDNS_AddressIsLocalSubnet(m, InterfaceID, srcaddr, mDNSNULL);
7692 if (!InterfaceID && dstaddr && mDNSAddrIsDNSMulticast(dstaddr))
7695 "%2d Question%s %2d Answer%s %2d Authorit%s %2d Additional%s %d bytes (Multicast, but no InterfaceID)",
7696 srcaddr, mDNSVal16(srcport), dstaddr, mDNSVal16(dstport), InterfaceID,
7706 srcaddr, mDNSVal16(srcport), dstaddr, mDNSVal16(dstport), InterfaceID,
7712 responseend = ProcessQuery(m, msg, end, srcaddr, InterfaceID,
7721 srcaddr, mDNSVal16(srcport), InterfaceID, srcaddr->type);
7722 mDNSSendDNSMessage(m, &m->omsg, responseend, InterfaceID, mDNSNULL, srcaddr, srcport, mDNSNULL, mDNSNULL, mDNSfalse);
7935 if (!m->rec.r.resrec.InterfaceID) debugf("CreateNewCacheEntry %s", CRDisplayString(m, &m->rec.r));
7976 if (!rr->resrec.InterfaceID)
8183 mDNSIPPort dstport, const mDNSInterfaceID InterfaceID)
8192 ptr = getQuestion(response, ptr, end, InterfaceID, &pktq);
8226 mDNSIPPort dstport, const mDNSInterfaceID InterfaceID, uDNS_LLQType LLQType, mDNSu8 rcode, CacheRecord *NSECRecords)
8236 ptr = getQuestion(response, ptr, end, InterfaceID, &q);
8266 if (!InterfaceID && q.qtype != kDNSType_SOA && IsLocalDomain(&q.qname))
8307 ptr = GetLargeResourceRecord(m, response, ptr, end, InterfaceID, kDNSRecordTypePacketAuth, &m->rec);
8499 mDNSInterfaceID InterfaceID)
8508 if (!InterfaceID)
8515 match = (rr->resrec.InterfaceID == InterfaceID);
8521 m->rec.r.resrec.rdlength, InterfaceID, CRDisplayString(m, &m->rec.r));
8661 const mDNSInterfaceID InterfaceID, CacheRecord **NSEC3Records)
8680 ptr = GetLargeResourceRecord(m, response, ptr, end, InterfaceID, kDNSRecordTypePacketAuth, &m->rec);
8733 // InterfaceID non-NULL tells us the interface this multicast response was received on
8734 // InterfaceID NULL tells us this was a unicast response
8739 const mDNSInterfaceID InterfaceID)
8744 mDNSBool ResponseSrcLocal = !srcaddr || mDNS_AddressIsLocalSubnet(m, InterfaceID, srcaddr, &myself);
8763 NetworkInterfaceInfo *llintf = FirstIPv4LLInterfaceForID(m, InterfaceID);
8776 srcaddr, dstaddr, InterfaceID,
8795 if (!InterfaceID && (response->h.flags.b[0] & kDNSFlag0_TC)) return;
8824 ptr = getQuestion(response, ptr, end, InterfaceID, &q);
8850 debugf("uDNS marking %p %##s (%s) %p %s", q.InterfaceID, q.qname.c, DNSTypeName(q.qtype),
8851 rr->resrec.InterfaceID, CRDisplayString(m, rr));
8910 mDNSParseNSEC3Records(m, response, end, InterfaceID, &McastNSEC3Records);
8923 ptr = GetLargeResourceRecord(m, response, ptr, end, InterfaceID, RecordType, &m->rec);
9019 if (!InterfaceID)
9021 debugf("mDNSCoreReceiveResponse: InterfaceID %p %##s (%s)", q->InterfaceID, q->qname.c, DNSTypeName(q->qtype));
9025 LogInfo("mDNSCoreReceiveResponse: InterfaceID %p %##s (%s)", q->InterfaceID, q->qname.c, DNSTypeName(q->qtype));
9031 if (!InterfaceID)
9042 LogInfo("mDNSCoreReceiveResponse: Accepting record in response to QU question %s, InterfaceID %p", CRDisplayString(m, &m->rec.r),
9043 InterfaceID);
9049 LogInfo("mDNSCoreReceiveResponse: Accepting _device-info record %s, InterfaceID %p",
9050 CRDisplayString(m, &m->rec.r), InterfaceID);
9093 if (rr->ImmedAnswer == InterfaceID) { rr->ImmedAnswer = mDNSNULL; rr->ImmedUnicast = mDNSfalse; }
9097 if (rr->ImmedAnswer == mDNSNULL) { rr->ImmedAnswer = InterfaceID; m->NextScheduledResponse = m->timenow; }
9098 else if (rr->ImmedAnswer != InterfaceID) { rr->ImmedAnswer = mDNSInterfaceMark; m->NextScheduledResponse = m->timenow; }
9202 rr = mDNSCoreReceiveCacheCheck(m, response, LLQType, slot, cg, unicastQuestion, &cfp, &NSECCachePtr, InterfaceID);
9324 if (!r1->resrec.InterfaceID)
9348 // For Unicast (null InterfaceID) the resolver IDs should also match
9349 if ((r1->resrec.InterfaceID == r2->resrec.InterfaceID) &&
9350 (r1->resrec.InterfaceID || (id1 == id2)) &&
9478 mDNSCoreReceiveNoDNSSECAnswers(m, response, end, dstaddr, dstport, InterfaceID);
9481 mDNSCoreReceiveNoUnicastAnswers(m, response, end, dstaddr, dstport, InterfaceID, LLQType, rcode, NSECRecords);
9496 mDNSlocal void ScheduleWakeupForList(mDNS *const m, mDNSInterfaceID InterfaceID, mDNSEthAddr *e, AuthRecord *const thelist)
9511 if (rr->resrec.InterfaceID == InterfaceID && rr->resrec.RecordType != kDNSRecordTypeDeregistering && mDNSSameEthAddress(&rr->WakeUp.HMAC, e))
9521 mDNSlocal void ScheduleWakeup(mDNS *const m, mDNSInterfaceID InterfaceID, mDNSEthAddr *e)
9524 ScheduleWakeupForList(m, InterfaceID, e, m->DuplicateRecords);
9525 ScheduleWakeupForList(m, InterfaceID, e, m->ResourceRecords);
9536 LogMsg("%-7s Conflicting mDNS -- waking %.6a %s", InterfaceNameForID(m, ar->resrec.InterfaceID), &ar->WakeUp.HMAC, ARDisplayString(m, ar));
9539 SendWakeup(m, ar->resrec.InterfaceID, &ar->WakeUp.IMAC, &ar->WakeUp.password); // Send one wakeup magic packet
9540 ScheduleWakeup(m, ar->resrec.InterfaceID, &ar->WakeUp.HMAC); // Schedule all other records with the same owner to be woken
9950 const mDNSInterfaceID InterfaceID)
9961 srcaddr, mDNSVal16(srcport), dstaddr, mDNSVal16(dstport), InterfaceID,
9967 if (!InterfaceID || !m->SPSSocket || !mDNSSameIPPort(dstport, m->SPSSocket->port)) return;
10026 ClearKeepaliveProxyRecords(m, &owner, m->DuplicateRecords, InterfaceID);
10027 ClearKeepaliveProxyRecords(m, &owner, m->ResourceRecords, InterfaceID);
10031 ptr = GetLargeResourceRecord(m, msg, ptr, end, InterfaceID, kDNSRecordTypePacketAuth, &m->rec);
10051 mDNS_SetupResourceRecord(ar, mDNSNULL, InterfaceID, m->rec.r.resrec.rrtype, m->rec.r.resrec.rroriginalttl, RecordType, AuthRecordAny, SPSRecordCallback, ar);
10064 if (ar->AddressProxy.type) SetSPSProxyListChanged(InterfaceID);
10099 if (p) mDNSSendDNSMessage(m, &m->omsg, p, InterfaceID, m->SPSSocket, srcaddr, srcport, mDNSNULL, mDNSNULL, mDNSfalse);
10103 mDNSlocal void mDNSCoreReceiveUpdateR(mDNS *const m, const DNSMessage *const msg, const mDNSu8 *end, const mDNSAddr *srcaddr, const mDNSInterfaceID InterfaceID)
10105 if (InterfaceID)
10120 LogSPS("Sleep Proxy granted lease time %4d seconds, updateid %d, InterfaceID %p", updatelease, mDNSVal16(msg->h.id), InterfaceID);
10132 if (rr->resrec.InterfaceID == InterfaceID || (!rr->resrec.InterfaceID && (rr->ForceMCast || IsLocalDomain(rr->resrec.name))))
10135 // We successfully completed this record's registration on this "InterfaceID". Clear that bit.
10137 mDNSu32 scopeid = mDNSPlatformInterfaceIndexfromInterfaceID(m, InterfaceID, mDNStrue);
10158 char *ifname = InterfaceNameForID(m, InterfaceID);
10169 const domainname *const name, const mDNSu32 namehash, const mDNSu16 rrtype, const mDNSu16 rrclass, mDNSu32 ttl_seconds, mDNSInterfaceID InterfaceID, DNSServer *dnsserver)
10181 cr->resrec.InterfaceID = InterfaceID;
10219 const mDNSInterfaceID InterfaceID)
10221 mDNSInterfaceID ifid = InterfaceID;
10239 LNT_ConfigureRouterInfo(m, InterfaceID, pkt, (mDNSu16)(end - (mDNSu8 *)pkt));
10247 uDNS_ReceiveNATPacket(m, InterfaceID, pkt, (mDNSu16)(end - (mDNSu8 *)pkt));
10285 if (!mDNS_AddressIsLocalSubnet(m, InterfaceID, srcaddr, mDNSNULL) &&
10306 else if (QR_OP == UpdQ) mDNSCoreReceiveUpdate (m, msg, end, srcaddr, srcport, dstaddr, dstport, InterfaceID);
10307 else if (QR_OP == UpdR) mDNSCoreReceiveUpdateR (m, msg, end, srcaddr, InterfaceID);
10311 msg->h.flags.b[0], msg->h.flags.b[1], srcaddr, mDNSVal16(srcport), dstaddr, mDNSVal16(dstport), end - (mDNSu8 *)pkt, InterfaceID);
10374 if (q->InterfaceID == question->InterfaceID && // with the same InterfaceID,
10484 LogInfo("mDNS_AddMcastResolver: Adding %##s, InterfaceID %p, timeout %u", d->c, interface, timeout);
10647 // Note: InterfaceID is the InterfaceID of the question
10648 mDNSlocal mDNSBool DNSServerMatch(DNSServer *d, mDNSInterfaceID InterfaceID, mDNSs32 ServiceID)
10650 // 1) Unscoped questions (NULL InterfaceID) should consider *only* unscoped DNSServers ( DNSServer
10653 // 2) Scoped questions (non-NULL InterfaceID) should consider *only* scoped DNSServers (DNSServer
10660 // unscoped. The question is unscoped only if InterfaceID is zero and ServiceID is -1.
10663 // InterfaceID for discussion and the same holds good for ServiceID):
10665 // - DNSServer is not scoped, InterfaceID is not NULL - we should skip the current DNSServer entry
10668 // - DNSServer is scoped, InterfaceID is NULL - we should skip the current DNSServer entry as
10669 // unscoped question should not match scoped DNSServer (Refer to (1) above). The InterfaceID check
10672 // - DNSServer is scoped and InterfaceID is not NULL - the InterfaceID of the question and the DNSServer
10676 // If a question is scoped both to InterfaceID and ServiceID, the question will be scoped to InterfaceID.
10678 if (((d->scoped == kScopeNone) && ((!InterfaceID && ServiceID == -1) || InterfaceID == mDNSInterface_Unicast)) ||
10679 ((d->scoped == kScopeInterfaceID) && d->interface == InterfaceID) ||
10724 if ((!DEQuery || !curr->cellIntf) && DNSServerMatch(curr, question->InterfaceID, question->ServiceID))
10763 mDNSlocal DNSServer *GetBestServer(mDNS *m, const domainname *name, mDNSInterfaceID InterfaceID, mDNSs32 ServiceID, mDNSOpaque64 validBits,
10806 if (DNSServerMatch(curr, InterfaceID, ServiceID))
10812 // part and still do some redundant steps e.g., InterfaceID match
10837 // Look up a DNS Server, matching by name and InterfaceID
10838 mDNSlocal DNSServer *GetServerForName(mDNS *m, const domainname *name, mDNSInterfaceID InterfaceID, mDNSs32 ServiceID)
10844 if ((InterfaceID == mDNSInterface_Unicast) || (InterfaceID == mDNSInterface_LocalOnly))
10845 InterfaceID = mDNSNULL;
10847 if (InterfaceID) ifname = InterfaceNameForID(m, InterfaceID);
10852 curmatch = GetBestServer(m, name, InterfaceID, ServiceID, allValid, mDNSNULL, mDNStrue);
10857 InterfaceID, name);
10859 LogInfo("GetServerForName: no DNS server (Scope %s:%p) found for name %##s", ifname ? ifname : "None", InterfaceID, name);
10869 mDNSInterfaceID InterfaceID = question->InterfaceID;
10873 if ((InterfaceID == mDNSInterface_Unicast) || (InterfaceID == mDNSInterface_LocalOnly))
10874 InterfaceID = mDNSNULL;
10876 if (InterfaceID)
10877 ifname = InterfaceNameForID(m, InterfaceID);
10881 curmatch = GetBestServer(m, name, InterfaceID, question->ServiceID, question->validDNSServers, &currindex, mDNSfalse);
10891 InterfaceID, question->ServiceID, name, DNSTypeName(question->qtype));
10896 question, ifname ? ifname : "None", InterfaceID, question->ServiceID, name, DNSTypeName(question->qtype));
11046 if (q->InterfaceID != mDNSInterface_Unicast && IsLocalDomain(&q->qname))
11349 if (question->InterfaceID && question->InterfaceID != mDNSInterface_LocalOnly && question->InterfaceID != mDNSInterface_Unicast && question->InterfaceID != mDNSInterface_P2P)
11351 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, question->InterfaceID);
11353 LogInfo("ValidateParameters: Note: InterfaceID %d for question %##s (%s) not currently found in active interface list",
11354 (uint32_t)question->InterfaceID, question->qname.c, DNSTypeName(question->qtype));
11372 if (question->InterfaceID == mDNSInterface_LocalOnly || question->InterfaceID == mDNSInterface_P2P)
11534 question->DupSuppress[i].InterfaceID = mDNSNULL;
11539 question->qname.c, DNSTypeName(question->qtype), question->InterfaceID, m->timenow,
11689 if (question->InterfaceID == mDNSInterface_LocalOnly || question->InterfaceID == mDNSInterface_P2P)
11720 if (question->InterfaceID == mDNSInterface_LocalOnly || question->InterfaceID == mDNSInterface_P2P)
11778 if (question->InterfaceID == mDNSInterface_LocalOnly || question->InterfaceID == mDNSInterface_P2P) qp = &m->LocalOnlyQuestions;
11995 const mDNSu8 *anondata, const mDNSInterfaceID InterfaceID, mDNSu32 flags,
11999 question->InterfaceID = InterfaceID;
12040 const mDNSu8 *anondata, const mDNSInterfaceID InterfaceID, mDNSu32 flags,
12046 status = mDNS_StartBrowse_internal(m, question, srv, domain, anondata, InterfaceID, flags, ForceMCast, useBackgroundTrafficClass, Callback, Context);
12072 query->qAv4.InterfaceID = answer->InterfaceID;
12074 query->qAv6.InterfaceID = answer->InterfaceID;
12081 else if ((query->qAv4.InterfaceID != query->qSRV.InterfaceID && query->qAv4.InterfaceID != answer->InterfaceID) ||
12093 query->qAv4.InterfaceID = query->qSRV.InterfaceID; // Will be mDNSInterface_Any, or a specific interface
12094 query->qAv6.InterfaceID = query->qSRV.InterfaceID;
12098 query->qAv4.InterfaceID = answer->InterfaceID;
12100 query->qAv6.InterfaceID = answer->InterfaceID;
12168 query->info->InterfaceID = answer->InterfaceID;
12185 // On entry, the client must have set the name and InterfaceID fields of the ServiceInfo structure
12186 // If the query is not interface-specific, then InterfaceID may be zero
12188 // In addition, InterfaceID will be updated to give the interface identifier corresponding to that response
12196 query->qSRV.InterfaceID = info->InterfaceID;
12224 query->qTXT.InterfaceID = info->InterfaceID;
12252 query->qAv4.InterfaceID = info->InterfaceID;
12280 query->qAv6.InterfaceID = info->InterfaceID;
12342 const mDNSInterfaceID InterfaceID, mDNSQuestionCallback *Callback, void *Context)
12344 question->InterfaceID = InterfaceID;
12509 mDNS_SetupResourceRecord(&set->RR_A, mDNSNULL, set->InterfaceID, kDNSType_A, kHostNameTTL, recordType, AuthRecordAny, mDNS_HostNameCallback, set);
12510 mDNS_SetupResourceRecord(&set->RR_PTR, mDNSNULL, set->InterfaceID, kDNSType_PTR, kHostNameTTL, kDNSRecordTypeKnownUnique, AuthRecordAny, mDNSNULL, mDNSNULL);
12511 mDNS_SetupResourceRecord(&set->RR_HINFO, mDNSNULL, set->InterfaceID, kDNSType_HINFO, kHostNameTTL, kDNSRecordTypeUnique, AuthRecordAny, mDNSNULL, mDNSNULL);
12719 if (intf->InterfaceID == active->InterfaceID)
12769 mDNS_StartBrowse_internal(m, &set->NetWakeBrowse, &SleepProxyServiceType, &localdomain, mDNSNULL, set->InterfaceID, 0, mDNSfalse, mDNSfalse, m->SPSBrowseCallback, set);
12812 if (!set->InterfaceID)
12813 { LogMsg("mDNS_RegisterInterface: Error! Tried to register a NetworkInterfaceInfo %#a with zero InterfaceID", &set->ip); return(mStatus_Invalid); }
12827 // Scan list to see if this InterfaceID is already represented
12837 if ((*p)->InterfaceID == set->InterfaceID)
12839 // This InterfaceID already represented by a different interface in the list, so mark this instance inactive for now
12855 LogInfo("mDNS_RegisterInterface: InterfaceID %d %s (%#a) %s",
12856 (uint32_t)set->InterfaceID, set->ifname, &set->ip,
12915 if (!q->InterfaceID || q->InterfaceID == set->InterfaceID) // If non-specific Q, or Q on this specific interface,
12918 mDNSBool dodelay = flapping && (q->FlappingInterface1 == set->InterfaceID || q->FlappingInterface2 == set->InterfaceID);
12947 if (!rr->resrec.InterfaceID || rr->resrec.InterfaceID == set->InterfaceID)
12992 if (intf->InterfaceActive && intf->InterfaceID == set->InterfaceID)
12997 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, set->InterfaceID);
13000 LogInfo("mDNS_DeregisterInterface: Another representative of InterfaceID %d %s (%#a) exists;"
13001 " making it active", (uint32_t)set->InterfaceID, set->ifname, &set->ip);
13012 if (intf->InterfaceID == set->InterfaceID && intf->ip.type == set->ip.type)
13023 LogInfo("mDNS_DeregisterInterface: Last representative of InterfaceID %d %s (%#a) deregistered;"
13024 " marking questions etc. dormant", (uint32_t)set->InterfaceID, set->ifname, &set->ip);
13038 if (q->InterfaceID == set->InterfaceID) q->ThisQInterval = 0;
13039 if (!q->InterfaceID || q->InterfaceID == set->InterfaceID)
13042 q->FlappingInterface1 = set->InterfaceID; // Keep history of the last two interfaces to go away
13050 if (rr->resrec.InterfaceID == set->InterfaceID)
13084 if (rr->resrec.InterfaceID == set->InterfaceID)
13207 mDNSlocal AuthRecType setAuthRecType(mDNSInterfaceID InterfaceID, mDNSu32 flags)
13211 if (InterfaceID == mDNSInterface_LocalOnly)
13213 else if (InterfaceID == mDNSInterface_P2P)
13215 else if ((InterfaceID == mDNSInterface_Any) && (flags & coreFlagIncludeP2P)
13218 else if ((InterfaceID == mDNSInterface_Any) && (flags & coreFlagIncludeP2P))
13220 else if ((InterfaceID == mDNSInterface_Any) && (flags & coreFlagIncludeAWDL))
13241 mDNSInterfaceID InterfaceID, mDNSServiceCallback Callback, void *Context, mDNSu32 flags)
13258 artype = setAuthRecType(InterfaceID, flags);
13262 mDNS_SetupResourceRecord(&sr->RR_ADV, mDNSNULL, InterfaceID, kDNSType_PTR, kStandardTTL, kDNSRecordTypeAdvisory, artype, ServiceCallback, sr);
13263 mDNS_SetupResourceRecord(&sr->RR_PTR, mDNSNULL, InterfaceID, kDNSType_PTR, kStandardTTL, kDNSRecordTypeShared, artype, ServiceCallback, sr);
13275 mDNS_SetupResourceRecord(&sr->RR_SRV, mDNSNULL, InterfaceID, kDNSType_SRV, hostTTL, recordType, artype, ServiceCallback, sr);
13276 mDNS_SetupResourceRecord(&sr->RR_TXT, mDNSNULL, InterfaceID, kDNSType_TXT, kStandardTTL, kDNSRecordTypeUnique, artype, ServiceCallback, sr);
13280 return(mDNS_RegisterNoSuchService(m, &sr->RR_SRV, name, type, domain, mDNSNULL, InterfaceID, NSSCallback, sr, flags));
13315 mDNS_SetupResourceRecord(&sr->SubTypes[i], mDNSNULL, InterfaceID, kDNSType_PTR, kStandardTTL, kDNSRecordTypeShared, artype, ServiceCallback, sr);
13380 mDNSInterfaceID InterfaceID = sr->RR_PTR.resrec.InterfaceID;
13382 artype = setAuthRecType(InterfaceID, flags);
13385 mDNS_SetupResourceRecord(&extra->r, rdata, sr->RR_PTR.resrec.InterfaceID,
13458 sr->RR_PTR.resrec.InterfaceID, sr->ServiceCallback, sr->ServiceContext, sr->flags);
13544 const mDNSInterfaceID InterfaceID, mDNSRecordCallback Callback, void *Context, mDNSu32 flags)
13548 artype = setAuthRecType(InterfaceID, flags);
13550 mDNS_SetupResourceRecord(rr, mDNSNULL, InterfaceID, kDNSType_SRV, kHostNameTTL, kDNSRecordTypeUnique, artype, Callback, Context);
13561 mDNS_DomainType DomainType, const mDNSInterfaceID InterfaceID, char *domname)
13565 if (InterfaceID == mDNSInterface_LocalOnly)
13567 else if (InterfaceID == mDNSInterface_P2P)
13571 mDNS_SetupResourceRecord(rr, mDNSNULL, InterfaceID, kDNSType_PTR, kStandardTTL, kDNSRecordTypeShared, artype, mDNSNULL, mDNSNULL);
13646 mDNSlocal void mDNSCoreReceiveRawARP(mDNS *const m, const ARP_EthIP *const arp, const mDNSInterfaceID InterfaceID)
13650 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, InterfaceID);
13666 if (rr->resrec.InterfaceID == InterfaceID && rr->resrec.RecordType != kDNSRecordTypeDeregistering &&
13687 mDNSPlatformSetLocalAddressCacheEntry(m, &rr->AddressProxy, &rr->WakeUp.IMAC, InterfaceID);
13710 if (rr->resrec.InterfaceID == InterfaceID && rr->resrec.RecordType != kDNSRecordTypeDeregistering &&
13731 ScheduleWakeup(m, rr->resrec.InterfaceID, &rr->WakeUp.HMAC);
13757 const IPv6NDP *const ndp, const mDNSu8 *const end, const mDNSInterfaceID InterfaceID)
13760 NetworkInterfaceInfo *intf = FirstInterfaceForID(m, InterfaceID);
13771 if (rr->resrec.InterfaceID == InterfaceID && rr->resrec.RecordType != kDNSRecordTypeDeregistering &&
13793 mDNSPlatformSetLocalAddressCacheEntry(m, &rr->AddressProxy, &rr->WakeUp.IMAC, InterfaceID);
13813 if (rr->resrec.InterfaceID == InterfaceID && rr->resrec.RecordType != kDNSRecordTypeDeregistering &&
13833 ScheduleWakeup(m, rr->resrec.InterfaceID, &rr->WakeUp.HMAC);
13843 const mDNSu8 *const p, const TransportLayerPacket *const t, const mDNSu8 *const end, const mDNSInterfaceID InterfaceID, const mDNSu16 len)
13982 if (!checksum) mDNSCoreReceiveRawND(m, sha, &src->ip.v6, &t->ndp, &t->bytes[len], InterfaceID);
13997 if (rr->resrec.InterfaceID == InterfaceID &&
14003 if (r2->resrec.InterfaceID == InterfaceID && mDNSSameEthAddress(&r2->WakeUp.HMAC, &rr->WakeUp.HMAC) &&
14013 InterfaceNameForID(m, rr->resrec.InterfaceID), dst, &rr->WakeUp.HMAC, &rr->WakeUp.IMAC, ARDisplayString(m, r2));
14014 ScheduleWakeup(m, rr->resrec.InterfaceID, &rr->WakeUp.HMAC);
14018 InterfaceNameForID(m, rr->resrec.InterfaceID), dst, &rr->WakeUp.HMAC, tp, mDNSVal16(port));
14024 mDNSexport void mDNSCoreReceiveRawPacket(mDNS *const m, const mDNSu8 *const p, const mDNSu8 *const end, const mDNSInterfaceID InterfaceID)
14043 mDNSCoreReceiveRawARP(m, &pkt->arp, InterfaceID);
14052 mDNSCoreReceiveRawTransportPacket(m, &eth->src, &src, &dst, pkt->v4.protocol, p, (TransportLayerPacket*)trans, end, InterfaceID, 0);
14062 mDNSCoreReceiveRawTransportPacket(m, &eth->src, &src, &dst, pkt->v6.pro, p, (TransportLayerPacket*)trans, end, InterfaceID,
14502 mDNS_SetupQuestion(&question, q->InterfaceID, &q->qname, qtype, mDNSNULL, mDNSNULL);
14507 if (!rp->resrec.InterfaceID && rp->resrec.RecordType != kDNSRecordTypePacketNegative &&
14679 q->qname.c, DNSTypeName(q->qtype), q->InterfaceID);
14739 if (cr->resrec.InterfaceID)
14752 // active question's InterfaceID/ServiceID for looking up the right DNS server.
14760 (cr->CRActiveQuestion ? cr->CRActiveQuestion->InterfaceID : mDNSNULL),
14796 if (cr->resrec.InterfaceID) continue;
14815 " to be freed", CRDisplayString(m, cr), qptr->qname.c, DNSTypeName(qptr->qtype), qptr->InterfaceID, &ptr->addr);
14824 qptr->InterfaceID, &ptr->addr, (qptr->qDNSServer ? &qptr->qDNSServer->addr : mDNSNULL));
14858 if (!cr->resrec.InterfaceID)