#define FLX_RESPONSE_HISTORY_MSEC 700
#define FLX_RESPONSE_DEFER_MSEC 20
#define FLX_RESPONSE_JITTER_MSEC 100
-#define FLX_PROBE_DEFER_MSEC 100
+#define FLX_PROBE_DEFER_MSEC 20
flxPacketScheduler *flx_packet_scheduler_new(flxServer *server, flxInterface *i) {
flxPacketScheduler *s;
qj->done = 1;
- /* Drop query after some time from history from history */
+ /* Drop query after some time from history */
flx_elapse_time(&tv, FLX_QUERY_HISTORY_MSEC, 0);
flx_time_event_queue_update(s->server->time_event_queue, qj->time_event, &tv);
flx_elapse_time(&tv, immediately ? 0 : FLX_QUERY_DEFER_MSEC, 0);
- for (qj = s->query_jobs; qj; qj = qj->jobs_next)
+ for (qj = s->query_jobs; qj; qj = qj->jobs_next) {
if (flx_key_equal(qj->key, key)) {
break;
}
+ }
+
qj = query_job_new(s, key);
qj->delivery = tv;
qj->time_event = flx_time_event_queue_add(s->server->time_event_queue, &qj->delivery, query_elapse, qj);
static guint8* packet_add_probe_query(flxPacketScheduler *s, flxDnsPacket *p, flxProbeJob *pj) {
guint size;
- guint8 *r;
+ guint8 *ret;
flxKey *k;
g_assert(s);
/* Create the probe query */
k = flx_key_new(pj->record->key->name, pj->record->key->class, FLX_DNS_TYPE_ANY);
- r = flx_dns_packet_append_key(p, k);
+ ret = flx_dns_packet_append_key(p, k);
+ g_assert(ret);
/* Mark this job for addition to the packet */
pj->chosen = TRUE;
flx_key_unref(k);
- return r;
+ return ret;
}
static void probe_elapse(flxTimeEvent *e, gpointer data) {
/* Add the import probe */
if (!packet_add_probe_query(s, p, pj)) {
- g_warning("Record too large!");
+ g_warning("Record too large! ---");
flx_dns_packet_free(p);
return;
}
}
probe_job_free(s, pj);
+
n ++;
}
flx_elapse_time(&tv, immediately ? 0 : FLX_PROBE_DEFER_MSEC, 0);
- /* No duplication check here... */
/* Create a new job and schedule it */
pj = probe_job_new(s, record);
pj->delivery = tv;