Lines Matching refs:rr
61 mDNSlocal void SetRecordRetry(mDNS *const m, AuthRecord *rr, mDNSu32 random) in SetRecordRetry() argument
63 rr->LastAPTime = m->timenow; in SetRecordRetry()
65 if (rr->expire && rr->refreshCount < MAX_UPDATE_REFRESH_COUNT) in SetRecordRetry()
67 mDNSs32 remaining = rr->expire - m->timenow; in SetRecordRetry()
68 rr->refreshCount++; in SetRecordRetry()
72 rr->ThisAPInterval = 7 * (remaining/10) + (random ? random : mDNSRandom(remaining/10)); in SetRecordRetry()
74 if (rr->ThisAPInterval < MIN_UPDATE_REFRESH_TIME) in SetRecordRetry()
75 rr->ThisAPInterval = MIN_UPDATE_REFRESH_TIME; in SetRecordRetry()
77 …rr->ThisAPInterval/mDNSPlatformOneSecond, (rr->expire - m->timenow)/mDNSPlatformOneSecond, ARDispl… in SetRecordRetry()
81 rr->ThisAPInterval = MIN_UPDATE_REFRESH_TIME; in SetRecordRetry()
83 …rr->ThisAPInterval/mDNSPlatformOneSecond, (rr->expire - m->timenow)/mDNSPlatformOneSecond, ARDispl… in SetRecordRetry()
88 rr->expire = 0; in SetRecordRetry()
90 …rr->ThisAPInterval = rr->ThisAPInterval * QuestionIntervalStep; // Same Retry logic as Unicast Que… in SetRecordRetry()
91 if (rr->ThisAPInterval < INIT_RECORD_REG_INTERVAL) in SetRecordRetry()
92 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in SetRecordRetry()
93 if (rr->ThisAPInterval > MAX_RECORD_REG_INTERVAL) in SetRecordRetry()
94 rr->ThisAPInterval = MAX_RECORD_REG_INTERVAL; in SetRecordRetry()
96 LogInfo("SetRecordRetry retry in %d ms for %s", rr->ThisAPInterval, ARDisplayString(m, rr)); in SetRecordRetry()
704 AuthRecord rr; in putLLQ() local
705 ResourceRecord *opt = &rr.resrec; in putLLQ()
716 …mDNS_SetupResourceRecord(&rr, mDNSNULL, mDNSInterface_Any, kDNSType_OPT, kStandardTTL, kDNSRecordT… in putLLQ()
721 optRD = &rr.resrec.rdata->u.opt[0]; in putLLQ()
972 tcpInfo->rr ? &tcpInfo->rr ->tcp : mDNSNULL; in tcpCallback()
975 mDNSPlatformTCPGetFD(tcpInfo->sock), *backpointer, tcpInfo, q, tcpInfo->rr); in tcpCallback()
986 if (tcpInfo->rr && tcpInfo->rr->resrec.name != &tcpInfo->rr->namestorage) in tcpCallback()
988 tcpInfo->rr->resrec.name, &tcpInfo->rr->namestorage); in tcpCallback()
989 if (tcpInfo->rr && tcpInfo->rr-> resrec.name != &tcpInfo->rr-> namestorage) return; in tcpCallback()
991 AuthInfo = tcpInfo->rr ? GetAuthInfoForName(m, tcpInfo->rr->resrec.name) : mDNSNULL; in tcpCallback()
1231 DNSQuestion *const question, AuthRecord *const rr) in MakeTCPConn() argument
1248 info->rr = rr; in MakeTCPConn()
1397 mDNSexport const domainname *GetServiceTarget(mDNS *m, AuthRecord *const rr) in GetServiceTarget() argument
1399 debugf("GetServiceTarget %##s", rr->resrec.name->c); in GetServiceTarget()
1401 …if (!rr->AutoTarget) // If not automatically tracking this host's current name, just return the e… in GetServiceTarget()
1402 return(&rr->resrec.rdata->u.srv.target); in GetServiceTarget()
1406 DomainAuthInfo *AuthInfo = GetAuthInfoForName_internal(m, rr->resrec.name); in GetServiceTarget()
1423 const int srvcount = CountLabels(rr->resrec.name); in GetServiceTarget()
1432 …if (SameDomainName(SkipLeadingLabels(rr->resrec.name, srvcount - x), SkipLeadingLabels(&hi->fqdn, … in GetServiceTarget()
1440 LogInfo("GetServiceTarget: Returning NULL for %s", ARDisplayString(m, rr)); in GetServiceTarget()
1681 mDNSlocal void SendRecordRegistration(mDNS *const m, AuthRecord *rr);
1682 mDNSlocal void SendRecordDeregistration(mDNS *m, AuthRecord *rr);
1683 mDNSlocal mDNSBool IsRecordMergeable(mDNS *const m, AuthRecord *rr, mDNSs32 time);
1687 mDNSlocal void UpdateAllServiceRecords(mDNS *const m, AuthRecord *rr, mDNSBool reg) in UpdateAllServiceRecords() argument
1691 …if (rr->resrec.rrtype != kDNSType_SRV) { LogMsg("UpdateAllServiceRecords:ERROR!! ResourceRecord no… in UpdateAllServiceRecords()
1693 …& rr->state == regState_NoTarget) { LogMsg("UpdateAllServiceRecords:ERROR!! SRV record %s in noTar… in UpdateAllServiceRecords()
1695 LogInfo("UpdateAllServiceRecords: ResourceRecord %s", ARDisplayString(m, rr)); in UpdateAllServiceRecords()
1707 if (srvRR == rr) in UpdateAllServiceRecords()
1746 AuthRecord *rr = (AuthRecord *)n->clientContext; in CompleteRecordNatMap() local
1749 if (!rr) { LogMsg("CompleteRecordNatMap called with unknown AuthRecord object"); return; } in CompleteRecordNatMap()
1750 …if (!n->NATLease) { LogMsg("CompleteRecordNatMap No NATLease for %s", ARDisplayString(m, rr)); ret… in CompleteRecordNatMap()
1752 …if (rr->resrec.rrtype != kDNSType_SRV) {LogMsg("CompleteRecordNatMap: Not a service record %s", AR… in CompleteRecordNatMap()
1754 …f (rr->resrec.RecordType == kDNSRecordTypeDeregistering) { LogInfo("CompleteRecordNatMap called fo… in CompleteRecordNatMap()
1756 …if (rr->state == regState_DeregPending) { LogInfo("CompleteRecordNatMap called for %s, record in D… in CompleteRecordNatMap()
1761 if (!rr->nta || mDNSIPv4AddressIsZero(rr->nta->Addr.ip.v4)) in CompleteRecordNatMap()
1763 LogInfo("CompleteRecordNatMap called for %s but no zone information!", ARDisplayString(m, rr)); in CompleteRecordNatMap()
1766 if (rr->NATinfo.clientContext) in CompleteRecordNatMap()
1768 mDNS_StopNATOperation_internal(m, &rr->NATinfo); in CompleteRecordNatMap()
1769 rr->NATinfo.clientContext = mDNSNULL; in CompleteRecordNatMap()
1771 rr->state = regState_Pending; in CompleteRecordNatMap()
1772 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in CompleteRecordNatMap()
1773 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in CompleteRecordNatMap()
1780 target = GetServiceTarget(m, rr); in CompleteRecordNatMap()
1781 srvt = GetRRDomainNameTarget(&rr->resrec); in CompleteRecordNatMap()
1785 …NatMap - Target %##s for ResourceRecord %##s, ExternalPort %d", target->c, rr->resrec.name->c, mDN… in CompleteRecordNatMap()
1787 …LogInfo("CompleteRecordNatMap - no target for %##s, ExternalPort %d", rr->resrec.name->c, mDNSVal1… in CompleteRecordNatMap()
1789 rr->state = regState_NoTarget; in CompleteRecordNatMap()
1790 rr->resrec.rdlength = rr->resrec.rdestimate = 0; in CompleteRecordNatMap()
1792 UpdateAllServiceRecords(m, rr, mDNSfalse); in CompleteRecordNatMap()
1795 …NatMap - Target %##s for ResourceRecord %##s, ExternalPort %d", target->c, rr->resrec.name->c, mDN… in CompleteRecordNatMap()
1803 SetNewRData(&rr->resrec, mDNSNULL, 0); // Update rdlength, rdestimate, rdatahash in CompleteRecordNatMap()
1816 rr->SRVChanged = mDNSfalse; in CompleteRecordNatMap()
1822 rr->state = regState_Pending; in CompleteRecordNatMap()
1823 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in CompleteRecordNatMap()
1824 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in CompleteRecordNatMap()
1825 if (IsRecordMergeable(m, rr, m->timenow + MERGE_DELAY_TIME)) in CompleteRecordNatMap()
1828 rr->LastAPTime += MERGE_DELAY_TIME; in CompleteRecordNatMap()
1835 UpdateAllServiceRecords(m, rr, mDNStrue); in CompleteRecordNatMap()
1838 mDNSlocal void StartRecordNatMap(mDNS *m, AuthRecord *rr) in StartRecordNatMap() argument
1843 if (rr->resrec.rrtype != kDNSType_SRV) in StartRecordNatMap()
1845 …LogInfo("StartRecordNatMap: Resource Record %##s type %d, not supported", rr->resrec.name->c, rr->… in StartRecordNatMap()
1848 p = rr->resrec.name->c; in StartRecordNatMap()
1855 …else { LogMsg("StartRecordNatMap: could not determine transport protocol of service %##s", rr->res… in StartRecordNatMap()
1859 if (rr->NATinfo.clientContext) mDNS_StopNATOperation_internal(m, &rr->NATinfo); in StartRecordNatMap()
1860 rr->NATinfo.Protocol = protocol; in StartRecordNatMap()
1864 rr->NATinfo.IntPort = rr->resrec.rdata->u.srv.port; in StartRecordNatMap()
1865 rr->NATinfo.RequestedPort = rr->resrec.rdata->u.srv.port; in StartRecordNatMap()
1866 rr->NATinfo.NATLease = 0; // Request default lease in StartRecordNatMap()
1867 rr->NATinfo.clientCallback = CompleteRecordNatMap; in StartRecordNatMap()
1868 rr->NATinfo.clientContext = rr; in StartRecordNatMap()
1869 mDNS_StartNATOperation_internal(m, &rr->NATinfo); in StartRecordNatMap()
1891 mDNSlocal mStatus UnlinkResourceRecord(mDNS *const m, AuthRecord *const rr) in UnlinkResourceRecord() argument
1894 while (*list && *list != rr) list = &(*list)->next; in UnlinkResourceRecord()
1897 *list = rr->next; in UnlinkResourceRecord()
1898 rr->next = mDNSNULL; in UnlinkResourceRecord()
1901 if (rr->NATinfo.clientContext) in UnlinkResourceRecord()
1903 mDNS_StopNATOperation_internal(m, &rr->NATinfo); in UnlinkResourceRecord()
1904 rr->NATinfo.clientContext = mDNSNULL; in UnlinkResourceRecord()
1905 if (rr->resrec.rrtype == kDNSType_SRV) rr->resrec.rdata->u.srv.port = rr->NATinfo.IntPort; in UnlinkResourceRecord()
1910 LogMsg("UnlinkResourceRecord:ERROR!! - no such active record %##s", rr->resrec.name->c); in UnlinkResourceRecord()
1917 mDNSlocal void RegisterAllServiceRecords(mDNS *const m, AuthRecord *rr) in RegisterAllServiceRecords() argument
1919 LogInfo("RegisterAllServiceRecords: Service Record %##s", rr->resrec.name->c); in RegisterAllServiceRecords()
1922 rr->SRVChanged = mDNSfalse; in RegisterAllServiceRecords()
1923 UnlinkResourceRecord(m, rr); in RegisterAllServiceRecords()
1924 mDNS_Register_internal(m, rr); in RegisterAllServiceRecords()
1926 UpdateAllServiceRecords(m, rr, mDNStrue); in RegisterAllServiceRecords()
1930 mDNSlocal void UpdateOneSRVRecord(mDNS *m, AuthRecord *rr) in UpdateOneSRVRecord() argument
1937 domainname *curtarget = &rr->resrec.rdata->u.srv.target; in UpdateOneSRVRecord()
1938 const domainname *const nt = GetServiceTarget(m, rr); in UpdateOneSRVRecord()
1940 …mDNSBool TargetChanged = (newtarget->c[0] && rr->state == regState_NoTarget) || !SameDomainName(cu… in UpdateOneSRVRecord()
1941 mDNSBool HaveZoneData = rr->nta && !mDNSIPv4AddressIsZero(rr->nta->Addr.ip.v4); in UpdateOneSRVRecord()
1948 mDNSIPPort port = rr->resrec.rdata->u.srv.port; in UpdateOneSRVRecord()
1949 …rr->AutoTarget == Target_AutoHostAndNATMAP && !mDNSIPPortIsZero(port) && mDNSv4AddrIsRFC1918(&m->A… in UpdateOneSRVRecord()
1950 mDNSBool WereBehindNAT = (rr->NATinfo.clientContext != mDNSNULL); in UpdateOneSRVRecord()
1951 …mDNSBool PortWasMapped = (rr->NATinfo.clientContext && !mDNSSameIPPort(rr->NATinfo.RequestedPort, … in UpdateOneSRVRecord()
1956 …: Resource Record %s TargetChanged %d, NewTarget %##s", ARDisplayString(m, rr), TargetChanged, nt-… in UpdateOneSRVRecord()
1959 rr->resrec.name->c, newtarget, in UpdateOneSRVRecord()
1968 if (rr->resrec.RecordType == kDNSRecordTypeDeregistering) in UpdateOneSRVRecord()
1971 rr->resrec.name->c, rr->state); in UpdateOneSRVRecord()
1976 … for %##s, state %d, newtarget %##s", TargetChanged, NATChanged, rr->resrec.name->c, rr->state, ne… in UpdateOneSRVRecord()
1978 … %d for %##s, state %d, null newtarget", TargetChanged, NATChanged, rr->resrec.name->c, rr->state); in UpdateOneSRVRecord()
1979 switch(rr->state) in UpdateOneSRVRecord()
1999 LogInfo("UpdateOneSRVRecord: No target yet for Resource Record %s", ARDisplayString(m, rr)); in UpdateOneSRVRecord()
2002 RegisterAllServiceRecords(m , rr); in UpdateOneSRVRecord()
2030 rr->SRVChanged = mDNStrue; in UpdateOneSRVRecord()
2031 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in UpdateOneSRVRecord()
2032 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in UpdateOneSRVRecord()
2036 rr->resrec.name->c, newtarget->c); in UpdateOneSRVRecord()
2037 rr->state = regState_Pending; in UpdateOneSRVRecord()
2041 …LogInfo("UpdateOneSRVRecord: SRV record changed for service %##s de-registering", rr->resrec.name-… in UpdateOneSRVRecord()
2042 rr->state = regState_DeregPending; in UpdateOneSRVRecord()
2043 UpdateAllServiceRecords(m, rr, mDNSfalse); in UpdateOneSRVRecord()
2047 default: LogMsg("UpdateOneSRVRecord: Unknown state %d for %##s", rr->state, rr->resrec.name->c); in UpdateOneSRVRecord()
2069 mDNSlocal void HostnameCallback(mDNS *const m, AuthRecord *const rr, mStatus result);
2139 mDNSlocal void HostnameCallback(mDNS *const m, AuthRecord *const rr, mStatus result) in HostnameCallback() argument
2141 HostnameInfo *hi = (HostnameInfo *)rr->RecordContext; in HostnameCallback()
2149 LogInfo("HostnameCallback: Got mStatus_MemFree for %p %p %s", hi, rr, ARDisplayString(m, rr)); in HostnameCallback()
2151 if (rr == &i->arv4 || rr == &i->arv6) in HostnameCallback()
2169 if (rr->resrec.rrtype == kDNSType_A) in HostnameCallback()
2170 …ameCallback: Error %d for registration of %##s IP %.4a", result, rr->resrec.name->c, &rr->resrec.r… in HostnameCallback()
2172 …meCallback: Error %d for registration of %##s IP %.16a", result, rr->resrec.name->c, &rr->resrec.r… in HostnameCallback()
2173 if (!hi) { mDNSPlatformMemFree(rr); return; } in HostnameCallback()
2174 …if (rr->state != regState_Unregistered) LogMsg("Error: HostnameCallback invoked with error code fo… in HostnameCallback()
2180 rr->RecordContext = (void *)hi->StatusContext; in HostnameCallback()
2182 hi->StatusCallback(m, rr, result); // client may NOT make API calls here in HostnameCallback()
2183 rr->RecordContext = (void *)hi; in HostnameCallback()
2195 if (rr->resrec.rrtype == kDNSType_A) in HostnameCallback()
2196 LogInfo("Registered hostname %##s IP %.4a", rr->resrec.name->c, &rr->resrec.rdata->u.ipv4); in HostnameCallback()
2198 LogInfo("Registered hostname %##s IP %.16a", rr->resrec.name->c, &rr->resrec.rdata->u.ipv6); in HostnameCallback()
2200 rr->RecordContext = (void *)hi->StatusContext; in HostnameCallback()
2202 hi->StatusCallback(m, rr, result); // client may NOT make API calls here in HostnameCallback()
2203 rr->RecordContext = (void *)hi; in HostnameCallback()
2562 mDNSlocal mDNSu8* BuildUpdateMessage(mDNS *const m, mDNSu8 *ptr, AuthRecord *rr, mDNSu8 *limit) in BuildUpdateMessage() argument
2565 if (rr->state == regState_DeregPending) in BuildUpdateMessage()
2567 rr->expire = 0; // Indicate that we have no active registration any more in BuildUpdateMessage()
2568 ptr = putDeletionRecordWithLimit(&m->omsg, ptr, &rr->resrec, limit); in BuildUpdateMessage()
2575 if (rr->state == regState_Registered) rr->state = regState_Refresh; in BuildUpdateMessage()
2576 if (rr->state != regState_Refresh && rr->state != regState_UpdatePending) in BuildUpdateMessage()
2577 rr->state = regState_Pending; in BuildUpdateMessage()
2581 if (rr->resrec.RecordType != kDNSRecordTypeAdvisory) rr->RequireGoodbye = mDNStrue; in BuildUpdateMessage()
2583 if ((rr->resrec.rrtype == kDNSType_SRV) && (rr->AutoTarget == Target_AutoHostAndNATMAP) && in BuildUpdateMessage()
2584 !mDNSIPPortIsZero(rr->NATinfo.ExternalPort)) in BuildUpdateMessage()
2586 rr->resrec.rdata->u.srv.port = rr->NATinfo.ExternalPort; in BuildUpdateMessage()
2589 if (rr->state == regState_UpdatePending) in BuildUpdateMessage()
2592 SetNewRData(&rr->resrec, rr->OrigRData, rr->OrigRDLen); in BuildUpdateMessage()
2593 …if (!(ptr = putDeletionRecordWithLimit(&m->omsg, ptr, &rr->resrec, limit))) goto exit; // delete o… in BuildUpdateMessage()
2596 SetNewRData(&rr->resrec, rr->InFlightRData, rr->InFlightRDLen); in BuildUpdateMessage()
2597 …sourceRecordTTLWithLimit(&m->omsg, ptr, &m->omsg.h.mDNS_numUpdates, &rr->resrec, rr->resrec.rrorig… in BuildUpdateMessage()
2601 …if (rr->resrec.RecordType == kDNSRecordTypeKnownUnique || rr->resrec.RecordType == kDNSRecordTypeV… in BuildUpdateMessage()
2606 ptr = putDeleteRRSetWithLimit(&m->omsg, ptr, rr->resrec.name, rr->resrec.rrtype, limit); in BuildUpdateMessage()
2609 else if (rr->resrec.RecordType != kDNSRecordTypeShared) in BuildUpdateMessage()
2616 …ptr = PutResourceRecordTTLWithLimit(&m->omsg, ptr, &m->omsg.h.mDNS_numUpdates, &rr->resrec, rr->re… in BuildUpdateMessage()
2622 LogMsg("BuildUpdateMessage: Error formatting message for %s", ARDisplayString(m, rr)); in BuildUpdateMessage()
2627 mDNSlocal void SendRecordRegistration(mDNS *const m, AuthRecord *rr) in SendRecordRegistration() argument
2638 AuthInfo = GetAuthInfoForName_internal(m, rr->resrec.name); in SendRecordRegistration()
2644 if (!rr->nta || mDNSIPv4AddressIsZero(rr->nta->Addr.ip.v4)) in SendRecordRegistration()
2647 …LogMsg("SendRecordRegistration: No Zone information, should not happen %s", ARDisplayString(m, rr)… in SendRecordRegistration()
2651 rr->updateid = mDNS_NewMessageID(m); in SendRecordRegistration()
2652 InitializeDNSMessage(&m->omsg.h, rr->updateid, UpdateReqFlags); in SendRecordRegistration()
2655 ptr = putZone(&m->omsg, ptr, limit, rr->zone, mDNSOpaque16fromIntVal(rr->resrec.rrclass)); in SendRecordRegistration()
2658 if (!(ptr = BuildUpdateMessage(m, ptr, rr, limit))) goto exit; in SendRecordRegistration()
2660 if (rr->uselease) in SendRecordRegistration()
2665 if (rr->Private) in SendRecordRegistration()
2667 LogInfo("SendRecordRegistration TCP %p %s", rr->tcp, ARDisplayString(m, rr)); in SendRecordRegistration()
2668 …if (rr->tcp) LogInfo("SendRecordRegistration: Disposing existing TCP connection for %s", ARDisplay… in SendRecordRegistration()
2669 if (rr->tcp) { DisposeTCPConn(rr->tcp); rr->tcp = mDNSNULL; } in SendRecordRegistration()
2670 …if (!rr->nta) { LogMsg("SendRecordRegistration:Private:ERROR!! nta is NULL for %s", ARDisplayStrin… in SendRecordRegistration()
2671 …rr->tcp = MakeTCPConn(m, &m->omsg, ptr, kTCPSocketFlags_UseTLS, &rr->nta->Addr, rr->nta->Port, &rr… in SendRecordRegistration()
2675 LogInfo("SendRecordRegistration UDP %s", ARDisplayString(m, rr)); in SendRecordRegistration()
2676 …if (!rr->nta) { LogMsg("SendRecordRegistration:ERROR!! nta is NULL for %s", ARDisplayString(m, rr)… in SendRecordRegistration()
2677 …msg, ptr, mDNSInterface_Any, mDNSNULL, &rr->nta->Addr, rr->nta->Port, mDNSNULL, GetAuthInfoForName… in SendRecordRegistration()
2681 SetRecordRetry(m, rr, 0); in SendRecordRegistration()
2684 …Registration: Error formatting message for %s, disabling further updates", ARDisplayString(m, rr)); in SendRecordRegistration()
2686 rr->state = regState_NoTarget; in SendRecordRegistration()
2690 mDNSlocal mDNSBool IsRecordMergeable(mDNS *const m, AuthRecord *rr, mDNSs32 time) in IsRecordMergeable() argument
2710 if (!AuthRecord_uDNS(rr)) return mDNSfalse; in IsRecordMergeable()
2712 if (rr->LastAPTime + rr->ThisAPInterval - time > 0) in IsRecordMergeable()
2713 …dMergeable: Time %d not reached for %s", rr->LastAPTime + rr->ThisAPInterval - m->timenow, ARDispl… in IsRecordMergeable()
2715 if (!rr->zone) return mDNSfalse; in IsRecordMergeable()
2717 info = GetAuthInfoForName_internal(m, rr->zone); in IsRecordMergeable()
2721 …if (rr->state != regState_DeregPending && rr->state != regState_Pending && rr->state != regState_R… in IsRecordMergeable()
2722 …{ debugf("IsRecordMergeable: state %d not right %s", rr->state, ARDisplayString(m, rr)); return m… in IsRecordMergeable()
2724 if (!rr->nta || mDNSIPv4AddressIsZero(rr->nta->Addr.ip.v4)) return mDNSfalse; in IsRecordMergeable()
2726 if (!rr->uselease) return mDNSfalse; in IsRecordMergeable()
2728 …if (rr->mState == mergeState_DontMerge) {debugf("IsRecordMergeable Dontmerge true %s", ARDisplaySt… in IsRecordMergeable()
2729 debugf("IsRecordMergeable: Returning true for %s", ARDisplayString(m, rr)); in IsRecordMergeable()
2734 mDNSlocal mDNSBool AreRecordsMergeable(mDNS *const m, AuthRecord *currentRR, AuthRecord *rr, mDNSs3… in AreRecordsMergeable() argument
2738 if (!IsRecordMergeable(m, rr, time)) return mDNSfalse; in AreRecordsMergeable()
2740 if (!SameDomainName(currentRR->zone, rr->zone)) in AreRecordsMergeable()
2741 …le zone mismatch current rr Zone %##s, rr zone %##s", currentRR->zone->c, rr->zone->c); return mD… in AreRecordsMergeable()
2743 if (!mDNSSameIPv4Address(currentRR->nta->Addr.ip.v4, rr->nta->Addr.ip.v4)) return mDNSfalse; in AreRecordsMergeable()
2745 if (!mDNSSameIPPort(currentRR->nta->Port, rr->nta->Port)) return mDNSfalse; in AreRecordsMergeable()
2747 debugf("AreRecordsMergeable: Returning true for %s", ARDisplayString(m, rr)); in AreRecordsMergeable()
2755 AuthRecord *rr; in RRMergeFailure() local
2756 for (rr = m->ResourceRecords; rr; rr = rr->next) in RRMergeFailure()
2758 rr->mState = mergeState_DontMerge; in RRMergeFailure()
2759 rr->SendRNow = mDNSNULL; in RRMergeFailure()
2762 ActivateUnicastRegistration(m, rr); in RRMergeFailure()
2804 mDNSlocal mDNSu32 RREstimatedSize(AuthRecord *rr, int zoneSize) in RREstimatedSize() argument
2811 if (rr->state == regState_UpdatePending) in RREstimatedSize()
2814 rdlength = rr->OrigRDLen + rr->InFlightRDLen; in RREstimatedSize()
2816 rdlength = rr->resrec.rdestimate; in RREstimatedSize()
2818 if (rr->state == regState_DeregPending) in RREstimatedSize()
2821 …rr->resrec.name->c, DNSTypeName(rr->resrec.rrtype), DomainNameLength(rr->resrec.name), zoneSize, r… in RREstimatedSize()
2822 return DomainNameLength(rr->resrec.name) - zoneSize + 2 + 10 + rdlength; in RREstimatedSize()
2826 …if (rr->resrec.RecordType == kDNSRecordTypeKnownUnique || rr->resrec.RecordType == kDNSRecordTypeV… in RREstimatedSize()
2832 …rr->resrec.name->c, DNSTypeName(rr->resrec.rrtype), DomainNameLength(rr->resrec.name), zoneSize, r… in RREstimatedSize()
2833 return DomainNameLength(rr->resrec.name) - zoneSize + 2 + 10 + 2 + 10 + rdlength; in RREstimatedSize()
2837 return DomainNameLength(rr->resrec.name) - zoneSize + 2 + 10 + rdlength; in RREstimatedSize()
2843 AuthRecord *rr; in MarkRRForSending() local
2860 for (rr = m->ResourceRecords; rr; rr = rr->next) in MarkRRForSending()
2864 if (!IsRecordMergeable(m, rr, m->timenow + MERGE_DELAY_TIME)) continue; in MarkRRForSending()
2865 firstRR = rr; in MarkRRForSending()
2867 else if (!AreRecordsMergeable(m, firstRR, rr, m->timenow + MERGE_DELAY_TIME)) continue; in MarkRRForSending()
2869 …if (rr->SendRNow) LogMsg("MarkRRForSending: Resourcerecord %s already marked for sending", ARDispl… in MarkRRForSending()
2870 rr->SendRNow = mDNSInterfaceMark; in MarkRRForSending()
2887 for (rr = m->ResourceRecords; rr; rr = rr->next) in MarkRRForSending()
2889 if ((rr->state != regState_Registered && rr->state != regState_Refresh) || in MarkRRForSending()
2890 (rr->SendRNow == mDNSInterfaceMark) || in MarkRRForSending()
2891 (!AreRecordsMergeable(m, firstRR, rr, m->timenow + rr->ThisAPInterval/2))) in MarkRRForSending()
2893 rr->SendRNow = mDNSInterfaceMark; in MarkRRForSending()
2908 AuthRecord *rr; in SendGroupUpdates() local
2937 for (rr = startRR; rr; rr = rr->next) in SendGroupUpdates()
2939 if (rr->SendRNow != mDNSInterfaceMark) continue; in SendGroupUpdates()
2941 rr->SendRNow = mDNSNULL; in SendGroupUpdates()
2945 AuthInfo = GetAuthInfoForName_internal(m, rr->zone); in SendGroupUpdates()
2970 zoneSize = DomainNameLength(rr->zone) + 4; in SendGroupUpdates()
2978 next = putZone(&m->omsg, next, limit, rr->zone, mDNSOpaque16fromIntVal(rr->resrec.rrclass)); in SendGroupUpdates()
2985 anchorRR = rr; in SendGroupUpdates()
2988 rrSize = RREstimatedSize(rr, zoneSize - 4); in SendGroupUpdates()
2996 …Updates: Skipping message %s, spaceleft %d, rrSize %d", ARDisplayString(m, rr), spaceleft, rrSize); in SendGroupUpdates()
2998 rr->SendRNow = mDNSInterfaceMark; in SendGroupUpdates()
3000 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in SendGroupUpdates()
3001 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in SendGroupUpdates()
3002 rr = rr->next; in SendGroupUpdates()
3015 …ource record %s, next %p, state %d, ttl %d", ARDisplayString(m, rr), next, rr->state, rr->resrec.r… in SendGroupUpdates()
3016 if (!(next = BuildUpdateMessage(m, next, rr, limit))) in SendGroupUpdates()
3020 LogMsg("SendGroupUpdates: ptr NULL while building message with %s", ARDisplayString(m, rr)); in SendGroupUpdates()
3026 …or %s, Estimate %d, Actual %d, state %d", ARDisplayString(m, rr), rrSize, next - oldnext, rr->stat… in SendGroupUpdates()
3032 if (rr->tcp) { DisposeTCPConn(rr->tcp); rr->tcp = mDNSNULL;} in SendGroupUpdates()
3033 rr->updateid = msgid; in SendGroupUpdates()
3037 SetRecordRetry(m, rr, 0); in SendGroupUpdates()
3040 startRR = rr; in SendGroupUpdates()
3055 AuthRecord *rr, *nextRR; in CheckGroupRecordUpdates() local
3062 for (rr = m->ResourceRecords; rr; rr = nextRR) in CheckGroupRecordUpdates()
3066 nextRR = rr->next; in CheckGroupRecordUpdates()
3067 if (rr->SendRNow == mDNSInterfaceMark) in CheckGroupRecordUpdates()
3071 if (rr->LastAPTime + rr->ThisAPInterval - m->timenow > 0) in CheckGroupRecordUpdates()
3072 …CheckGroupRecordUpdates: ERROR!! Resourcerecord %s not ready", ARDisplayString(m, rr)); continue; } in CheckGroupRecordUpdates()
3073 rr->SendRNow = mDNSNULL; in CheckGroupRecordUpdates()
3074 SendRecordRegistration(m, rr); in CheckGroupRecordUpdates()
3084 mDNSlocal void hndlSRVChanged(mDNS *const m, AuthRecord *rr) in hndlSRVChanged() argument
3089 const domainname *target = GetServiceTarget(m, rr); in hndlSRVChanged()
3093 if (rr->state == regState_DeregPending) in hndlSRVChanged()
3095 …LogInfo("hndlSRVChanged: SRVChanged, No Target, SRV Deregistered for %##s, state %d", rr->resrec.n… in hndlSRVChanged()
3096 rr->state); in hndlSRVChanged()
3097 rr->SRVChanged = mDNSfalse; in hndlSRVChanged()
3098 dt = GetRRDomainNameTarget(&rr->resrec); in hndlSRVChanged()
3100 rr->state = regState_NoTarget; // Wait for the next target change in hndlSRVChanged()
3101 rr->resrec.rdlength = rr->resrec.rdestimate = 0; in hndlSRVChanged()
3106 if (rr->state == regState_Pending) in hndlSRVChanged()
3108 …hanged: SRVChanged, No Target, Deregistering again %##s, state %d", rr->resrec.name->c, rr->state); in hndlSRVChanged()
3109 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in hndlSRVChanged()
3110 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in hndlSRVChanged()
3111 rr->state = regState_DeregPending; in hndlSRVChanged()
3114 …RVChanged: Not in DeregPending or RegPending state %##s, state %d", rr->resrec.name->c, rr->state); in hndlSRVChanged()
3125 if ((rr->state == regState_DeregPending) || in hndlSRVChanged()
3126 (rr->state == regState_Pending && !SameDomainName(target, &rr->resrec.rdata->u.srv.target))) in hndlSRVChanged()
3128 dt = GetRRDomainNameTarget(&rr->resrec); in hndlSRVChanged()
3130 …rr->state = regState_NoTarget; // NoTarget will allow us to pick up new target OR nat traversal st… in hndlSRVChanged()
3131 rr->resrec.rdlength = rr->resrec.rdestimate = 0; in hndlSRVChanged()
3133 target->c, rr->resrec.name->c, rr->state); in hndlSRVChanged()
3134 rr->SRVChanged = mDNSfalse; in hndlSRVChanged()
3135 UpdateOneSRVRecord(m, rr); in hndlSRVChanged()
3140 if (rr->state == regState_Pending) rr->state = regState_Registered; in hndlSRVChanged()
3143 rr->SRVChanged = mDNSfalse; in hndlSRVChanged()
3147 mDNSlocal void hndlRecordUpdateReply(mDNS *m, AuthRecord *rr, mStatus err, mDNSu32 random) in hndlRecordUpdateReply() argument
3155 …ly: err %d ID %d state %d %s(%p)", err, mDNSVal16(rr->updateid), rr->state, ARDisplayString(m, rr)… in hndlRecordUpdateReply()
3157 rr->updateError = err; in hndlRecordUpdateReply()
3162 SetRecordRetry(m, rr, random); in hndlRecordUpdateReply()
3164 rr->updateid = zeroID; // Make sure that this is not considered as part of a group anymore in hndlRecordUpdateReply()
3175 if (rr->nta) in hndlRecordUpdateReply()
3180 if (rr->nta->question.ThisQInterval != -1) in hndlRecordUpdateReply()
3182 …ARDisplayString(m, rr), rr->nta->question.qname.c, DNSTypeName(rr->nta->question.qtype), rr->nta->… in hndlRecordUpdateReply()
3183 UpdatePort = rr->nta->Port; in hndlRecordUpdateReply()
3184 CancelGetZoneData(m, rr->nta); in hndlRecordUpdateReply()
3185 rr->nta = mDNSNULL; in hndlRecordUpdateReply()
3190 if (rr->resrec.RecordType == kDNSRecordTypeDeregistering && rr->state == regState_DeregPending) in hndlRecordUpdateReply()
3192 …UpdateReply: Received reply for deregister record %##s type %d", rr->resrec.name->c, rr->resrec.rr… in hndlRecordUpdateReply()
3194 rr->resrec.name->c, rr->resrec.rrtype, err); in hndlRecordUpdateReply()
3195 rr->state = regState_Unregistered; in hndlRecordUpdateReply()
3196 CompleteDeregistration(m, rr); in hndlRecordUpdateReply()
3208 if (rr->resrec.rrtype == kDNSType_SRV && rr->state == regState_DeregPending) in hndlRecordUpdateReply()
3209 rr->state = regState_NoTarget; in hndlRecordUpdateReply()
3213 if (rr->state == regState_UpdatePending) in hndlRecordUpdateReply()
3215 if (err) LogMsg("Update record failed for %##s (err %d)", rr->resrec.name->c, err); in hndlRecordUpdateReply()
3216 rr->state = regState_Registered; in hndlRecordUpdateReply()
3218 if (rr->UpdateCallback) rr->UpdateCallback(m, rr, rr->OrigRData, rr->OrigRDLen); in hndlRecordUpdateReply()
3219 SetNewRData(&rr->resrec, rr->InFlightRData, rr->InFlightRDLen); in hndlRecordUpdateReply()
3220 rr->OrigRData = mDNSNULL; in hndlRecordUpdateReply()
3221 rr->InFlightRData = mDNSNULL; in hndlRecordUpdateReply()
3224 if (rr->SRVChanged) in hndlRecordUpdateReply()
3226 if (rr->resrec.rrtype == kDNSType_SRV) in hndlRecordUpdateReply()
3227 hndlSRVChanged(m, rr); in hndlRecordUpdateReply()
3230 …dUpdateReply: Deregistered %##s (%s), state %d", rr->resrec.name->c, DNSTypeName(rr->resrec.rrtype… in hndlRecordUpdateReply()
3231 rr->SRVChanged = mDNSfalse; in hndlRecordUpdateReply()
3232 …if (rr->state != regState_DeregPending) LogMsg("hndlRecordUpdateReply: ResourceRecord %s not in De… in hndlRecordUpdateReply()
3233 rr->state = regState_NoTarget; // Wait for the next target change in hndlRecordUpdateReply()
3238 if (rr->state == regState_Pending || rr->state == regState_Refresh) in hndlRecordUpdateReply()
3242 if (rr->state == regState_Refresh) InvokeCallback = mDNSfalse; in hndlRecordUpdateReply()
3243 rr->state = regState_Registered; in hndlRecordUpdateReply()
3248 …eply: Registration of record %##s type %d failed with error %d", rr->resrec.name->c, rr->resrec.rr… in hndlRecordUpdateReply()
3249 …if (!rr->Private && rr->uselease && err == mStatus_UnknownErr && mDNSSameIPPort(UpdatePort, Unicas… in hndlRecordUpdateReply()
3251 …LogMsg("hndlRecordUpdateReply: Will retry update of record %##s without lease option", rr->resrec.… in hndlRecordUpdateReply()
3252 rr->uselease = mDNSfalse; in hndlRecordUpdateReply()
3253 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in hndlRecordUpdateReply()
3254 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in hndlRecordUpdateReply()
3261 if (rr->QueuedRData && rr->state == regState_Registered) in hndlRecordUpdateReply()
3263 rr->state = regState_UpdatePending; in hndlRecordUpdateReply()
3264 rr->InFlightRData = rr->QueuedRData; in hndlRecordUpdateReply()
3265 rr->InFlightRDLen = rr->QueuedRDLen; in hndlRecordUpdateReply()
3266 rr->OrigRData = rr->resrec.rdata; in hndlRecordUpdateReply()
3267 rr->OrigRDLen = rr->resrec.rdlength; in hndlRecordUpdateReply()
3268 rr->QueuedRData = mDNSNULL; in hndlRecordUpdateReply()
3269 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in hndlRecordUpdateReply()
3270 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in hndlRecordUpdateReply()
3277 if (!err && InvokeCallback && rr->RecordCallback) in hndlRecordUpdateReply()
3279 LogInfo("hndlRecordUpdateReply: Calling record callback on %##s", rr->resrec.name->c); in hndlRecordUpdateReply()
3281 rr->RecordCallback(m, rr, err); in hndlRecordUpdateReply()
3912 mDNSlocal void SendRecordDeregistration(mDNS *m, AuthRecord *rr) in SendRecordDeregistration() argument
3921 if (!rr->nta || mDNSIPv4AddressIsZero(rr->nta->Addr.ip.v4)) in SendRecordDeregistration()
3923 …: No zone info for Resource record %s RecordType %d", ARDisplayString(m, rr), rr->resrec.RecordTyp… in SendRecordDeregistration()
3928 AuthInfo = GetAuthInfoForName_internal(m, rr->resrec.name); in SendRecordDeregistration()
3931 rr->updateid = mDNS_NewMessageID(m); in SendRecordDeregistration()
3932 InitializeDNSMessage(&m->omsg.h, rr->updateid, UpdateReqFlags); in SendRecordDeregistration()
3935 ptr = putZone(&m->omsg, ptr, limit, rr->zone, mDNSOpaque16fromIntVal(rr->resrec.rrclass)); in SendRecordDeregistration()
3938 ptr = BuildUpdateMessage(m, ptr, rr, limit); in SendRecordDeregistration()
3942 if (rr->Private) in SendRecordDeregistration()
3944 LogInfo("SendRecordDeregistration TCP %p %s", rr->tcp, ARDisplayString(m, rr)); in SendRecordDeregistration()
3945 …if (rr->tcp) LogInfo("SendRecordDeregistration: Disposing existing TCP connection for %s", ARDispl… in SendRecordDeregistration()
3946 if (rr->tcp) { DisposeTCPConn(rr->tcp); rr->tcp = mDNSNULL; } in SendRecordDeregistration()
3947 …if (!rr->nta) { LogMsg("SendRecordDeregistration:Private:ERROR!! nta is NULL for %s", ARDisplayStr… in SendRecordDeregistration()
3948 …rr->tcp = MakeTCPConn(m, &m->omsg, ptr, kTCPSocketFlags_UseTLS, &rr->nta->Addr, rr->nta->Port, &rr… in SendRecordDeregistration()
3953 LogInfo("SendRecordDeregistration UDP %s", ARDisplayString(m, rr)); in SendRecordDeregistration()
3954 …if (!rr->nta) { LogMsg("SendRecordDeregistration:ERROR!! nta is NULL for %s", ARDisplayString(m, r… in SendRecordDeregistration()
3955 …msg, ptr, mDNSInterface_Any, mDNSNULL, &rr->nta->Addr, rr->nta->Port, mDNSNULL, GetAuthInfoForName… in SendRecordDeregistration()
3959 SetRecordRetry(m, rr, 0); in SendRecordDeregistration()
3962 LogMsg("SendRecordDeregistration: Error formatting message for %s", ARDisplayString(m, rr)); in SendRecordDeregistration()
3965 mDNSexport mStatus uDNS_DeregisterRecord(mDNS *const m, AuthRecord *const rr) in uDNS_DeregisterRecord() argument
3969 LogInfo("uDNS_DeregisterRecord: Resource Record %s, state %d", ARDisplayString(m, rr), rr->state); in uDNS_DeregisterRecord()
3971 switch (rr->state) in uDNS_DeregisterRecord()
3989 …o("uDNS_DeregisterRecord: State %d for %##s type %s", rr->state, rr->resrec.name->c, DNSTypeName(r… in uDNS_DeregisterRecord()
3991 if (rr->resrec.RecordType == kDNSRecordTypeDeregistering) CompleteDeregistration(m, rr); in uDNS_DeregisterRecord()
4008 if (!mDNSOpaque16IsZero(rr->updateid)) in uDNS_DeregisterRecord()
4014 if (AuthRecord_uDNS(rr) && mDNSSameOpaque16(anchorRR->updateid, rr->updateid) && anchorRR->tcp) in uDNS_DeregisterRecord()
4024 …isterRecord: Cannot find the anchor Resource Record for %s, not an error", ARDisplayString(m, rr)); in uDNS_DeregisterRecord()
4029 rr->state = regState_DeregPending; in uDNS_DeregisterRecord()
4030 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in uDNS_DeregisterRecord()
4031 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in uDNS_DeregisterRecord()
4032 info = GetAuthInfoForName_internal(m, rr->resrec.name); in uDNS_DeregisterRecord()
4033 if (IsRecordMergeable(m, rr, m->timenow + MERGE_DELAY_TIME)) in uDNS_DeregisterRecord()
4039 if (info && info->deltime) rr->LastAPTime += (2 * MERGE_DELAY_TIME); in uDNS_DeregisterRecord()
4040 else rr->LastAPTime += MERGE_DELAY_TIME; in uDNS_DeregisterRecord()
4046 if (m->NextuDNSEvent - (rr->LastAPTime + rr->ThisAPInterval) >= 0) in uDNS_DeregisterRecord()
4047 m->NextuDNSEvent = (rr->LastAPTime + rr->ThisAPInterval); in uDNS_DeregisterRecord()
4052 mDNSexport mStatus uDNS_UpdateRecord(mDNS *m, AuthRecord *rr) in uDNS_UpdateRecord() argument
4054 LogInfo("uDNS_UpdateRecord: Resource Record %##s, state %d", rr->resrec.name->c, rr->state); in uDNS_UpdateRecord()
4055 switch(rr->state) in uDNS_UpdateRecord()
4065 if (rr->UpdateCallback) rr->UpdateCallback(m, rr, rr->resrec.rdata, rr->resrec.rdlength); in uDNS_UpdateRecord()
4066 SetNewRData(&rr->resrec, rr->NewRData, rr->newrdlength); in uDNS_UpdateRecord()
4067 rr->NewRData = mDNSNULL; in uDNS_UpdateRecord()
4074 if (rr->QueuedRData && rr->UpdateCallback) in uDNS_UpdateRecord()
4076 rr->UpdateCallback(m, rr, rr->QueuedRData, rr->QueuedRDLen); in uDNS_UpdateRecord()
4077 rr->QueuedRData = rr->NewRData; in uDNS_UpdateRecord()
4078 rr->QueuedRDLen = rr->newrdlength; in uDNS_UpdateRecord()
4079 rr->NewRData = mDNSNULL; in uDNS_UpdateRecord()
4083 rr->OrigRData = rr->resrec.rdata; in uDNS_UpdateRecord()
4084 rr->OrigRDLen = rr->resrec.rdlength; in uDNS_UpdateRecord()
4085 rr->InFlightRData = rr->NewRData; in uDNS_UpdateRecord()
4086 rr->InFlightRDLen = rr->newrdlength; in uDNS_UpdateRecord()
4087 rr->NewRData = mDNSNULL; in uDNS_UpdateRecord()
4088 rr->state = regState_UpdatePending; in uDNS_UpdateRecord()
4089 rr->ThisAPInterval = INIT_RECORD_REG_INTERVAL; in uDNS_UpdateRecord()
4090 rr->LastAPTime = m->timenow - INIT_RECORD_REG_INTERVAL; in uDNS_UpdateRecord()
4094 …LogMsg("ERROR: uDNS_UpdateRecord called for record %##s with bad state regState_NATError", rr->res… in uDNS_UpdateRecord()
4097 default: LogMsg("uDNS_UpdateRecord: Unknown state %d for %##s", rr->state, rr->resrec.name->c); in uDNS_UpdateRecord()
4102 rr->resrec.name->c, rr->resrec.rrtype, rr->state); in uDNS_UpdateRecord()
4304 CacheRecord *rr; in uDNS_CheckCurrentQuestion() local
4308 for (rr = cg->members; rr; rr=rr->next) in uDNS_CheckCurrentQuestion()
4309 if (SameNameRecordAnswersQuestion(&rr->resrec, q)) mDNS_PurgeCacheResourceRecord(m, rr); in uDNS_CheckCurrentQuestion()
4512 AuthRecord *rr; in CheckRecordUpdates() local
4517 for (rr = m->ResourceRecords; rr; rr = rr->next) in CheckRecordUpdates()
4519 if (!AuthRecord_uDNS(rr)) continue; in CheckRecordUpdates()
4520 …if (rr->state == regState_NoTarget) {debugf("CheckRecordUpdates: Record %##s in NoTarget", rr->res… in CheckRecordUpdates()
4523 …if (rr->state == regState_NATMap) {debugf("CheckRecordUpdates: Record %##s in NATMap", rr->resrec.… in CheckRecordUpdates()
4524 …if (rr->state == regState_Pending || rr->state == regState_DeregPending || rr->state == regState_U… in CheckRecordUpdates()
4525 rr->state == regState_Refresh || rr->state == regState_Registered) in CheckRecordUpdates()
4527 if (rr->LastAPTime + rr->ThisAPInterval - m->timenow <= 0) in CheckRecordUpdates()
4529 if (rr->tcp) { DisposeTCPConn(rr->tcp); rr->tcp = mDNSNULL; } in CheckRecordUpdates()
4530 if (!rr->nta || mDNSIPv4AddressIsZero(rr->nta->Addr.ip.v4)) in CheckRecordUpdates()
4534 if (rr->nta) { rr->updateid = zeroID; CancelGetZoneData(m, rr->nta); } in CheckRecordUpdates()
4535 …rr->nta = StartGetZoneData(m, rr->resrec.name, ZoneServiceUpdate, RecordRegistrationGotZoneData, r… in CheckRecordUpdates()
4554 SetRecordRetry(m, rr, 0); in CheckRecordUpdates()
4556 else if (rr->state == regState_DeregPending) SendRecordDeregistration(m, rr); in CheckRecordUpdates()
4557 else SendRecordRegistration(m, rr); in CheckRecordUpdates()
4560 if (nextevent - (rr->LastAPTime + rr->ThisAPInterval) > 0) in CheckRecordUpdates()
4561 nextevent = (rr->LastAPTime + rr->ThisAPInterval); in CheckRecordUpdates()
4619 AuthRecord *rr; in SleepRecordRegistrations() local
4620 for (rr = m->ResourceRecords; rr; rr=rr->next) in SleepRecordRegistrations()
4622 if (AuthRecord_uDNS(rr)) in SleepRecordRegistrations()
4626 if (rr->nta) { rr->updateid = zeroID; CancelGetZoneData(m, rr->nta); rr->nta = mDNSNULL; } in SleepRecordRegistrations()
4628 if (rr->NATinfo.clientContext) in SleepRecordRegistrations()
4630 mDNS_StopNATOperation_internal(m, &rr->NATinfo); in SleepRecordRegistrations()
4631 rr->NATinfo.clientContext = mDNSNULL; in SleepRecordRegistrations()
4636 if (rr->state == regState_UpdatePending) in SleepRecordRegistrations()
4639 rr->state = regState_Registered; in SleepRecordRegistrations()
4641 if (rr->UpdateCallback) rr->UpdateCallback(m, rr, rr->OrigRData, rr->OrigRDLen); in SleepRecordRegistrations()
4642 SetNewRData(&rr->resrec, rr->InFlightRData, rr->InFlightRDLen); in SleepRecordRegistrations()
4643 rr->OrigRData = mDNSNULL; in SleepRecordRegistrations()
4644 rr->InFlightRData = mDNSNULL; in SleepRecordRegistrations()
4649 uDNS_DeregisterRecord(m, rr); in SleepRecordRegistrations()
4693 mDNSlocal void FreeARElemCallback(mDNS *const m, AuthRecord *const rr, mStatus result) in FreeARElemCallback() argument
4696 if (result == mStatus_MemFree) mDNSPlatformMemFree(rr->RecordContext); in FreeARElemCallback()