Home | History | Annotate | Download | only in mDNSCore

Lines Matching refs:Questions

115 // If there is a authoritative LocalOnly record that answers questions of type A, AAAA and CNAME
404 // themselves. Without that check we can get into a case where we have two duplicate questions,
496 m->CurrentQuestion = m->Questions;
514 // delivers the appropriate add/remove events to listening questions:
516 // stopping if it reaches a NewLocalOnlyQuestion -- brand-new questions are handled by AnswerNewLocalOnlyQuestion().
518 // our main question list, delivering answers to mDNSInterface_Any questions as appropriate,
519 // stopping if it reaches a NewQuestion -- brand-new questions are handled by AnswerNewQuestion().
548 // If this AuthRecord is marked LocalOnly or P2P, then we want to deliver it to all local 'mDNSInterface_Any' questions
631 // In addition, when probing we send our questions with the wildcard type kDNSQType_ANY,
1515 // <rdar://problem/7457925> Local-only questions don't get remove events for unique records
2482 // 1. If a cache record is currently referenced by *no* active questions,
2547 // so that the reconfirmation questions can be grouped into a single query packet
2881 // Scan our list of questions to see which:
2887 m->CurrentQuestion = m->Questions;
2932 // Scan our list of questions
2934 // (b) to update the state variables for *all* the questions we're going to send
2935 // Note: Don't set NextScheduledQuery until here, because uDNS_CheckCurrentQuestion in the loop above can add new questions to the list,
2939 for (q = m->Questions; q && q != m->NewQuestions; q=q->next)
2987 // For all questions (not just the ones we're sending) check what the next scheduled event will be
3090 // Put query questions in this packet
3091 for (q = m->Questions; q && q != m->NewQuestions; q=q->next)
3113 // Put probe questions in this packet
3135 // Put our known answer list (either new one from this question or questions, or remainder of old one from last time)
3204 // There might be more records left in the known answer list, or more questions to send
3243 // 4c. Debugging check: Make sure we sent all our planned questions
3244 // Do this AFTER the lingering cache records check above, because that will prevent spurious warnings for questions
3246 for (q = m->Questions; q; q=q->next)
3351 // We do this for mDNS questions and uDNS one-shot questions, but not for
3352 // uDNS LongLived questions, because that would mess up our LLQ lease renewal timing.
3371 // For CNAME results to non-CNAME questions, only inform the client if they explicitly requested that
3392 // New Questions are answered through AnswerNewQuestion. But there may not have been any
3393 // matching cache records for the questions when it is called. There are two possibilities.
3421 for (q = m->Questions; q && q != m->NewQuestions; q = qnext)
3474 m->CurrentQuestion = m->Questions;
3502 // If new questions are created as a result of invoking client callbacks, they will be added to
3515 for (q = m->Questions; q && q != m->NewQuestions; q=q->next)
3562 m->CurrentQuestion = m->Questions;
3578 // If new questions are created as a result of invoking client callbacks, they will be added to
3592 m->CurrentQuestion = m->Questions;
3593 // We do this for *all* questions, not stopping when we get to m->NewQuestions,
3608 // If new questions are created as a result of invoking client callbacks, they will be added to
3620 m->CurrentQuestion = m->Questions;
3622 // We stop when we get to NewQuestions -- for new questions their CurrentAnswers/LargeAnswers/UniqueAnswers counters
3629 // before the question became suppressed. We need to skip the suppressed questions here as
3727 if (rr->CRActiveQuestion) // If this record has one or more active questions, tell them it's going away
3735 // MaxQuestionInterval. If we have inactive questions referring to negative cache entries,
3811 // CacheRecordRmv() both use that themselves when walking the list of (non-new) questions generating callbacks.
3854 // We handle mDNSInterface_Any and scoped questions here. See LocalOnlyRecordAnswersQuestion for more
3855 // details on how we handle this case. For P2P we just handle "Interface_Any" questions. For LocalOnly
3856 // we handle both mDNSInterface_Any and scoped questions.
3994 // 2. As LocalOnly questions should also be answered by any other Auth records local to the machine,
4077 // Records that answer still-active questions are not candidates for recycling
4169 // summary deletion without giving the proper callback to any questions that are monitoring it.
4262 m->CurrentQuestion = m->Questions;
4365 // 4. See if we can answer any of our new local questions from the cache
4444 // to our local questions
4468 // 5. Some questions may have picked a new DNS server and the cache may answer these questions now.
4477 // then send our responses, probes, and questions.
4478 // We check the cache first, because there might be records close to expiring that trigger questions to refresh them.
4492 for (q = m->Questions; q && q != m->NewQuestions; q=q->next)
4551 for (q = m->Questions; q; q = q->next)
4653 m->RestartQuestion = m->Questions;
4658 // GetZoneData questions are referenced by other questions (original query that started the GetZoneData
4700 // SuppressQuery status does not affect questions that are answered using local records
4741 // Retrigger all our uDNS questions
4745 m->CurrentQuestion = m->Questions;
4754 // Retrigger all our mDNS questions
4755 for (q = m->Questions; q; q=q->next) // Scan our list of questions
5306 for (q = m->Questions; q; q = q->next)
5427 // Initialize the response fields so we can answer the questions
5431 // *** 1. Write out the list of questions we are actually going to answer with this packet
5447 if (!responseptr) { debugf("GenerateUnicastResponse: Ran out of space for questions!"); return(mDNSNULL); }
5453 if (response->h.numQuestions == 0) { LogMsg("GenerateUnicastResponse: ERROR! Why no questions?"); return(mDNSNULL); }
5739 DNSQuestion *DupQuestions = mDNSNULL; // Our questions that are identical to questions in this packet
5789 // * suppress their own identical questions when they see these questions, and
5906 for (q = m->Questions; q; q=q->next)
5982 // Having built our ExpectedAnswers list from the questions in this packet, we then remove
6085 // *** 8. If we think other machines are likely to answer these questions, set our packet suppression timer
6278 for (q = m->Questions; q; q=q->next)
6301 for (q = m->Questions; q; q=q->next)
6453 // before we deleted the record and reported a "remove" event to any active questions.
6520 // 1. We ignore questions (if any) in mDNS response packets
6539 // answer questions in this packet's question section, but which aren't tagged with this packet's
6655 // Intialize the DNS server on the resource record which will now filter what questions we answer with
6838 for (q = m->Questions; q; q=q->next) if (ResourceRecordAnswersQuestion(&rr->resrec, q)) q->UniqueAnswers++;
6868 // Subsequently, if we reissue questions from within the mDNSResponder e.g., DNS server
6870 // Currently, we do this for for both multicast and unicast questions as long as the record
6875 for (q = m->Questions; q; q=q->next)
6887 break; // Why break here? Aren't there other questions we might want to look at?-- SC July 2010
7047 // See if we need to generate negative cache entries for unanswered unicast questions
7572 // 4. Response packets that answer questions may cause our client to issue new questions
7594 // We keep SuppressUnusable questions separate so that we can return a quick response to them and not get blocked behind
7596 // non-SuppressUnusable questions. This should be fine as the goal of SuppressUnusable is to return quickly only if it
7605 // for multicast questions, we don't want to treat LongLived as anything special
7612 // This prevents circular references, where two questions are each marked as a duplicate of the other.
7615 for (q = m->Questions; q && q != question; q=q->next) // Scan our list for another question
7622 (q->SuppressQuery == question->SuppressQuery) && // Questions that are suppressed/not suppressed
7629 // This is called after a question is deleted, in case other identical questions were being suppressed as duplicates
7645 for (q = m->Questions; q; q=q->next) // Scan our list of questions
7646 if (q->DuplicateOf == question) // To see if any questions were referencing this as their duplicate
7850 // But any questions that has mDNSInterface_Any scope that are started/restarted before we receive the update
8033 for (q = m->Questions; q; q=q->next)
8130 for (qptr = m->Questions; qptr; qptr=qptr->next)
8224 // We look through all questions including new questions. During network change events,
8225 // we potentially restart questions here in this function that ends up as new questions,
8228 // new questions, we would never change its SuppressQuery status.
8238 m->RestartQuestion = m->Questions;
8263 // SuppressUnusable does not affect questions that are answered from the local records (/etc/hosts)
8264 // and SuppressQuery status does not mean anything for these questions. As we are going to stop the
8277 // 2. Previously it was not suppressed and now it is suppressed. We need to restart the questions
8283 // the question is not suppressed, we don't want two active questions sending packets on the wire.
8288 // will restart at the end. The main reason for the two step process is to handle duplicate questions.
8289 // If there are duplicate questions, calling stop inherits the values from another question on the list (which
8291 // suppressed before. At the end when we have restarted all questions, none of them is active as each
8292 // inherits from one another and we need to reactivate one of the questions here which is a little hacky.
8294 // It is much cleaner and less error prone to build a list of questions and restart at the end.
8345 // Note: It important that new questions are appended at the *end* of the list, not prepended at the start
8346 q = &m->Questions;
8402 // We won't need one for duplicate questions, or from questions answered immediately out of the cache.
8463 // Duplicate questions should have the same DNSServers so that when we find
8544 DNSQuestion **qp = &m->Questions;
8576 // Checking for ActiveQuestion filters questions that are suppressed also
8577 // as suppressed questions are not active
8578 for (q = m->Questions; q; q=q->next) // Scan our list of questions
8630 for (q = m->Questions; q; q=q->next)
9480 // Therefore, when registering an interface, we want to re-trigger our questions and re-probe our Resource Records,
9521 for (q = m->Questions; q; q=q->next) // Scan our list of questions
9529 if (dodelay) LogInfo("No cache records expired for %##s (%s); okay to delay questions a little", q->qname.c, DNSTypeName(q->qtype));
9623 " marking questions etc. dormant", set->InterfaceID, set->ifname, &set->ip);
9628 // 1. Deactivate any questions specific to this interface, and tag appropriate questions
9630 for (q = m->Questions; q; q=q->next)
9652 // if the interface does come back, any relevant questions will be reactivated anyway
10131 for (q = m->Questions; q; q=q->next) if (mDNSSameOpaque16(id, q->TargetQID)) return mDNStrue;
10201 // We ignore ARP Announcements here -- Announcements are not questions, they're assertions, so we don't need to answer them.
10670 m->Questions = mDNSNULL;
10960 // or reconfirm or send out questions to the "new" server to verify whether the cached
11017 // 3. Make sure all the duplicate questions point to the same DNSServer so that delivery
11066 // questions here. Neither question nor cache point to mcast resolvers. Questions
11086 // we walk the questions below where we change the DNSServer pointer of the cache
11103 // want any new questions to pick this old value
11117 for (q = m->Questions; q; q=q->next)
11144 // events for the questions, the DNSServer on the question should match the Cache Record
11151 // We still need to pick a new DNSServer for the questions that have been
11153 // could not possibly change the status of SuppressUnusable questions
11158 // ActivateUnicastQuery is called for duplicate questions also as it does something
11159 // special for AutoTunnel questions
11194 // freed one. We already went through the questions above and made them point at either the