Home | History | Annotate | Download | only in mDNSCore

Lines Matching refs:CurrentQuestion

382 	if (!m->CurrentQuestion) { LogMsg("GenerateNegativeResponse: ERROR!! CurrentQuestion not set"); return; }
383 q = m->CurrentQuestion;
388 if (m->CurrentQuestion == q) { q->ThisQInterval = 0; } // Deactivate this question
440 // For a single given DNSQuestion pointed to by CurrentQuestion, deliver an add/remove result for the single given AuthRecord
441 // Note: All the callers should use the m->CurrentQuestion to see if the question is still valid or not
444 DNSQuestion *q = m->CurrentQuestion;
449 LogMsg("AnswerLocalQuestionWithLocalAuthRecord: ERROR!! CurrentQuestion NULL while answering with %s", ARDisplayString(m, rr));
480 // using m->CurrentQuestion
481 if (followcname && m->CurrentQuestion == q)
493 if (m->CurrentQuestion)
494 LogMsg("AnswerInterfaceAnyQuestionsWithLocalAuthRecord: ERROR m->CurrentQuestion already set: %##s (%s)",
495 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
496 m->CurrentQuestion = m->Questions;
497 while (m->CurrentQuestion && m->CurrentQuestion != m->NewQuestions)
500 DNSQuestion *q = m->CurrentQuestion;
507 if (m->CurrentQuestion == q) // If m->CurrentQuestion was not auto-advanced, do it ourselves now
508 m->CurrentQuestion = q->next;
510 m->CurrentQuestion = mDNSNULL;
526 if (m->CurrentQuestion)
527 LogMsg("AnswerAllLocalQuestionsWithLocalAuthRecord ERROR m->CurrentQuestion already set: %##s (%s)",
528 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
530 m->CurrentQuestion = m->LocalOnlyQuestions;
531 while (m->CurrentQuestion && m->CurrentQuestion != m->NewLocalOnlyQuestions)
534 DNSQuestion *q = m->CurrentQuestion;
542 if (m->CurrentQuestion == q) // If m->CurrentQuestion was not auto-advanced, do it ourselves now
543 m->CurrentQuestion = q->next;
546 m->CurrentQuestion = mDNSNULL;
1358 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
1461 // The AnswerAllLocalQuestionsWithLocalAuthRecord routine walks the question list invoking client callbacks, using the "m->CurrentQuestion"
1464 // which means that the "m->CurrentQuestion" mechanism is already in use to protect that list, so we can't use it twice.
1766 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
2040 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
2885 if (m->CurrentQuestion)
2886 LogMsg("SendQueries ERROR m->CurrentQuestion already set: %##s (%s)", m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
2887 m->CurrentQuestion = m->Questions;
2888 while (m->CurrentQuestion && m->CurrentQuestion != m->NewQuestions)
2890 q = m->CurrentQuestion;
2920 // If m->CurrentQuestion wasn't modified out from under us, advance it now
2922 // m->CurrentQuestion point to the right question
2923 if (q == m->CurrentQuestion) m->CurrentQuestion = m->CurrentQuestion->next;
2925 while (m->CurrentQuestion)
2927 LogInfo("SendQueries question loop 1: Skipping NewQuestion %##s (%s)", m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
2928 m->CurrentQuestion = m->CurrentQuestion->next;
2930 m->CurrentQuestion = mDNSNULL;
3300 // Any code walking either list must use the m->CurrentQuestion (and possibly m->CurrentRecord) mechanism to protect against this.
3301 // In fact, to enforce this, the routine will *only* answer the question currently pointed to by m->CurrentQuestion,
3305 DNSQuestion *const q = m->CurrentQuestion;
3388 if (followcname && m->CurrentQuestion == q)
3417 if (m->CurrentQuestion)
3418 LogMsg("AnswerQuestionsForDNSServerChanges: ERROR m->CurrentQuestion already set: %##s (%s)",
3419 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
3434 m->CurrentQuestion = q;
3461 if (m->CurrentQuestion != q) break; // If callback deleted q, then we're finished here
3465 m->CurrentQuestion = mDNSNULL;
3471 if (m->CurrentQuestion)
3472 LogMsg("CacheRecordDeferredAdd ERROR m->CurrentQuestion already set: %##s (%s)",
3473 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
3474 m->CurrentQuestion = m->Questions;
3475 while (m->CurrentQuestion && m->CurrentQuestion != m->NewQuestions)
3477 DNSQuestion *q = m->CurrentQuestion;
3480 if (m->CurrentQuestion == q) // If m->CurrentQuestion was not auto-advanced, do it ourselves now
3481 m->CurrentQuestion = q->next;
3483 m->CurrentQuestion = mDNSNULL;
3508 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
3560 if (m->CurrentQuestion)
3561 LogMsg("CacheRecordAdd ERROR m->CurrentQuestion already set: %##s (%s)", m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
3562 m->CurrentQuestion = m->Questions;
3563 while (m->CurrentQuestion && m->CurrentQuestion != m->NewQuestions)
3565 q = m->CurrentQuestion;
3568 if (m->CurrentQuestion == q) // If m->CurrentQuestion was not auto-advanced, do it ourselves now
3569 m->CurrentQuestion = q->next;
3571 m->CurrentQuestion = mDNSNULL;
3586 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
3590 if (m->CurrentQuestion)
3591 LogMsg("NoCacheAnswer ERROR m->CurrentQuestion already set: %##s (%s)", m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
3592 m->CurrentQuestion = m->Questions;
3595 while (m->CurrentQuestion)
3597 DNSQuestion *q = m->CurrentQuestion;
3600 if (m->CurrentQuestion == q) // If m->CurrentQuestion was not auto-advanced, do it ourselves now
3601 m->CurrentQuestion = q->next;
3603 m->CurrentQuestion = mDNSNULL;
3614 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
3617 if (m->CurrentQuestion)
3618 LogMsg("CacheRecordRmv ERROR m->CurrentQuestion already set: %##s (%s)",
3619 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
3620 m->CurrentQuestion = m->Questions;
3624 while (m->CurrentQuestion && m->CurrentQuestion != m->NewQuestions)
3626 DNSQuestion *q = m->CurrentQuestion;
3645 m->CurrentQuestion = q->next;
3669 if (m->CurrentQuestion == q) // If m->CurrentQuestion was not auto-advanced, do it ourselves now
3670 m->CurrentQuestion = q->next;
3672 m->CurrentQuestion = mDNSNULL;
3810 // We can't use the usual m->CurrentQuestion mechanism for this because CacheRecordDeferredAdd() and
3812 // Fortunately mDNS_StopQuery_internal auto-advances both m->CurrentQuestion *AND* m->NewQuestions when
3818 // If the client's question callback deletes the question, then m->CurrentQuestion will
3821 if (m->CurrentQuestion)
3822 LogMsg("AnswerNewQuestion ERROR m->CurrentQuestion already set: %##s (%s)",
3823 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
3824 m->CurrentQuestion = q; // Indicate which question we're answering, so we'll know if it gets deleted
3833 if (m->CurrentQuestion == q) q->NoAnswer = NoAnswer_Fail; // Restore NoAnswer state
3836 if (m->CurrentQuestion != q) { LogInfo("AnswerNewQuestion: Question deleted while generating NoAnswer_Fail response"); goto exit; }
3862 if (m->CurrentQuestion != q) break; // If callback deleted q, then we're finished here
3868 if (m->CurrentQuestion != q) { LogInfo("AnswerNewQuestion: Question deleted while while giving LocalOnly record answers"); goto exit; }
3925 if (m->CurrentQuestion != q) break; // If callback deleted q, then we're finished here
3932 if (m->CurrentQuestion != q) { debugf("AnswerNewQuestion: Question deleted while giving cache answers"); goto exit; }
3944 if (m->CurrentQuestion != q) { debugf("AnswerNewQuestion: Question deleted while giving negative answer"); goto exit; }
3970 m->CurrentQuestion = mDNSNULL;
3985 if (m->CurrentQuestion)
3986 LogMsg("AnswerNewLocalOnlyQuestion ERROR m->CurrentQuestion already set: %##s (%s)",
3987 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
3988 m->CurrentQuestion = q; // Indicate which question we're answering, so we'll know if it gets deleted
4008 if (m->CurrentQuestion != q) break; // If callback deleted q, then we're finished here
4013 if (m->CurrentQuestion == q)
4024 if (m->CurrentQuestion != q) break; // If callback deleted q, then we're finished here
4029 m->CurrentQuestion = mDNSNULL;
4259 if (m->CurrentQuestion)
4260 LogMsg("TimeoutQuestions ERROR m->CurrentQuestion already set: %##s (%s)", m->CurrentQuestion->qname.c,
4261 DNSTypeName(m->CurrentQuestion->qtype));
4262 m->CurrentQuestion = m->Questions;
4263 while (m->CurrentQuestion)
4265 DNSQuestion *const q = m->CurrentQuestion;
4272 if (m->CurrentQuestion == q) q->StopTime = 0;
4280 // If m->CurrentQuestion wasn't modified out from under us, advance it now
4282 // depends on having m->CurrentQuestion point to the right question
4283 if (m->CurrentQuestion == q)
4284 m->CurrentQuestion = q->next;
4286 m->CurrentQuestion = mDNSNULL;
4302 if (m->CurrentQuestion)
4303 LogMsg("mDNS_Execute: ERROR m->CurrentQuestion already set: %##s (%s)",
4304 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
4643 // CurrentQuestion is used by RmvEventsForQuestion below. While delivering RMV events, the
4644 // application callback can potentially stop the current question (detected by CurrentQuestion) or
4647 // if the "next" question is stopped while the CurrentQuestion is stopped
4742 if (m->CurrentQuestion)
4743 LogMsg("mDNSCoreRestartQueries: ERROR m->CurrentQuestion already set: %##s (%s)",
4744 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
4745 m->CurrentQuestion = m->Questions;
4746 while (m->CurrentQuestion)
4748 q = m->CurrentQuestion;
4749 m->CurrentQuestion = m->CurrentQuestion->next;
5595 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
6465 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
7084 m->CurrentQuestion = qptr;
7086 m->CurrentQuestion = mDNSNULL;
8143 if (m->CurrentQuestion != q) break; // If callback deleted q, then we're finished here
8162 if (m->CurrentQuestion)
8163 LogMsg("LocalRecordRmvEventsForQuestion: ERROR m->CurrentQuestion already set: %##s (%s)",
8164 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
8171 m->CurrentQuestion = q;
8190 if (m->CurrentQuestion != q) { m->CurrentQuestion = mDNSNULL; return mDNSfalse; }
8193 m->CurrentQuestion = mDNSNULL;
8201 if (m->CurrentQuestion)
8202 LogMsg("CacheRecordRmvEventsForQuestion: ERROR m->CurrentQuestion already set: %##s (%s)",
8203 m->CurrentQuestion->qname.c, DNSTypeName(m->CurrentQuestion->qtype));
8209 m->CurrentQuestion = q;
8211 if (m->CurrentQuestion != q) { m->CurrentQuestion = mDNSNULL; return mDNSfalse; }
8212 m->CurrentQuestion = mDNSNULL;
8230 // CurrentQuestion is used by RmvEventsForQuestion below. While delivering RMV events, the
8231 // application callback can potentially stop the current question (detected by CurrentQuestion) or
8234 // if the "next" question is stopped while the CurrentQuestion is stopped
8591 if (m->CurrentQuestion == question)
8595 m->CurrentQuestion = question->next;
8614 // Take care not to trash question->next until *after* we've updated m->CurrentQuestion and m->NewQuestions
8622 // invalid before we even use it. By making sure that we update m->CurrentQuestion and m->NewQuestions if necessary
9147 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
9567 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
10012 // Any code walking either list must use the CurrentQuestion and/or CurrentRecord mechanism to protect against this.
10672 m->CurrentQuestion = mDNSNULL;