• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/timemachine/avahi-0.6.25/avahi-core/

Lines Matching refs:pj

63     AvahiProbeJob *pj;
68 if (!(pj = avahi_new(AvahiProbeJob, 1))) {
73 pj->scheduler = s;
74 pj->record = avahi_record_ref(record);
75 pj->time_event = NULL;
76 pj->chosen = 0;
78 if ((pj->done = done))
79 AVAHI_LLIST_PREPEND(AvahiProbeJob, jobs, s->history, pj);
81 AVAHI_LLIST_PREPEND(AvahiProbeJob, jobs, s->jobs, pj);
83 return pj;
86 static void job_free(AvahiProbeScheduler *s, AvahiProbeJob *pj) {
87 assert(pj);
89 if (pj->time_event)
90 avahi_time_event_free(pj->time_event);
92 if (pj->done)
93 AVAHI_LLIST_REMOVE(AvahiProbeJob, jobs, s->history, pj);
95 AVAHI_LLIST_REMOVE(AvahiProbeJob, jobs, s->jobs, pj);
97 avahi_record_unref(pj->record);
98 avahi_free(pj);
103 static void job_set_elapse_time(AvahiProbeScheduler *s, AvahiProbeJob *pj, unsigned msec, unsigned jitter) {
107 assert(pj);
111 if (pj->time_event)
112 avahi_time_event_update(pj->time_event, &tv);
114 pj->time_event = avahi_time_event_new(s->time_event_queue, &tv, elapse_callback, pj);
117 static void job_mark_done(AvahiProbeScheduler *s, AvahiProbeJob *pj) {
119 assert(pj);
121 assert(!pj->done);
123 AVAHI_LLIST_REMOVE(AvahiProbeJob, jobs, s->jobs, pj);
124 AVAHI_LLIST_PREPEND(AvahiProbeJob, jobs, s->history, pj);
126 pj->done = 1;
128 job_set_elapse_time(s, pj, AVAHI_PROBE_HISTORY_MSEC, 0);
129 gettimeofday(&pj->delivery, NULL);
167 static int packet_add_probe_query(AvahiProbeScheduler *s, AvahiDnsPacket *p, AvahiProbeJob *pj) {
174 assert(pj);
176 assert(!pj->chosen);
180 avahi_key_get_estimate_size(pj->record->key) +
181 avahi_record_get_estimate_size(pj->record);
188 if (!(k = avahi_key_new(pj->record->key->name, pj->record->key->clazz, AVAHI_DNS_TYPE_ANY)))
195 pj->chosen = 1;
198 for (pj = s->jobs; pj; pj = pj->jobs_next) {
199 if (pj->chosen)
203 if (k->clazz != pj->record->key->clazz || !avahi_domain_equal(k->name, pj->record->key->name))
207 if (avahi_record_get_estimate_size(pj->record) > avahi_dns_packet_space(p))
211 pj->chosen = 1;
220 AvahiProbeJob *pj = data, *next;
225 assert(pj);
226 s = pj->scheduler;
228 if (pj->done) {
230 job_free(s, pj);
239 if (!packet_add_probe_query(s, p, pj)) {
249 avahi_key_get_estimate_size(pj->record->key) +
250 avahi_record_get_estimate_size(pj->record) +
256 if (!(k = avahi_key_new(pj->record->key->name, pj->record->key->clazz, AVAHI_DNS_TYPE_ANY))) {
261 b = avahi_dns_packet_append_key(p, k, 0) && avahi_dns_packet_append_record(p, pj->record, 0, 0);
272 job_mark_done(s, pj);
278 for (pj = s->jobs; pj; pj = pj->jobs_next) {
280 if (pj->chosen)
283 if (!packet_add_probe_query(s, p, pj))
294 for (pj = s->jobs; pj; pj = next) {
296 next = pj->jobs_next;
298 if (!pj->chosen)
301 if (!avahi_dns_packet_append_record(p, pj->record, 0, 0)) {
305 for (; pj; pj = pj->jobs_next)
306 pj->chosen = 0;
311 job_mark_done(s, pj);
324 AvahiProbeJob *pj;
329 for (pj = s->jobs; pj; pj = pj->jobs_next) {
330 assert(!pj->done);
332 if (avahi_record_equal_no_ttl(pj->record, record))
333 return pj;
340 AvahiProbeJob *pj;
345 for (pj = s->history; pj; pj = pj->jobs_next) {
346 assert(pj->done);
348 if (avahi_record_equal_no_ttl(pj->record, record)) {
351 if (avahi_age(&pj->delivery) > AVAHI_PROBE_HISTORY_MSEC*1000) {
353 job_free(s, pj);
357 return pj;
365 AvahiProbeJob *pj;
372 if ((pj = find_history_job(s, record)))
377 if ((pj = find_scheduled_job(s, record))) {
379 if (avahi_timeval_compare(&tv, &pj->delivery) < 0) {
381 pj->delivery = tv;
382 avahi_time_event_update(pj->time_event, &pj->delivery);
388 if (!(pj = job_new(s, record, 0)))
391 pj->delivery = tv;
392 pj->time_event = avahi_time_event_new(s->time_event_queue, &pj->delivery, elapse_callback, pj);