#include "util.h"
#include "psched.h"
-flxPacketScheduler *flx_packet_scheduler_new(flxServer *server, flxInterface *i, guchar protocol) {
+flxPacketScheduler *flx_packet_scheduler_new(flxServer *server, flxInterface *i) {
flxPacketScheduler *s;
g_assert(server);
s = g_new(flxPacketScheduler, 1);
s->server = server;
s->interface = i;
- s->protocol = protocol;
FLX_LLIST_HEAD_INIT(flxQueryJob, s->query_jobs);
FLX_LLIST_HEAD_INIT(flxResponseJob, s->response_jobs);
return;
}
- p = flx_dns_packet_new_query(s->interface->mtu - 200);
+ p = flx_dns_packet_new_query(s->interface->hardware->mtu - 48);
d = packet_add_query_job(s, p, qj);
g_assert(d);
n = 1;
}
flx_dns_packet_set_field(p, DNS_FIELD_QDCOUNT, n);
- flx_interface_send_packet(s->interface, s->protocol, p);
+ flx_interface_send_packet(s->interface, p);
flx_dns_packet_free(p);
}
return;
}
- p = flx_dns_packet_new_response(s->interface->mtu - 200);
+ p = flx_dns_packet_new_response(s->interface->hardware->mtu - 200);
d = packet_add_response_job(s, p, rj);
g_assert(d);
n = 1;
}
flx_dns_packet_set_field(p, DNS_FIELD_ANCOUNT, n);
- flx_interface_send_packet(s->interface, s->protocol, p);
+ flx_interface_send_packet(s->interface, p);
flx_dns_packet_free(p);
}
g_assert(record);
for (rj = s->response_jobs; rj; rj = rj->jobs_next)
- if (flx_record_equal(rj->record, record))
+ if (flx_record_equal_no_ttl(rj->record, record))
return rj;
return NULL;
g_assert(record);
for (rj = s->response_jobs; rj; rj = rj->jobs_next)
- if (flx_record_equal(rj->record, record)) {
+ if (flx_record_equal_no_ttl(rj->record, record)) {
if (!rj->done) {
GTimeVal tv;