X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fresponse-sched.c;h=b194ef3f6f009a5b274052051f8cedc3e8500fef;hb=ee4ae75d110322e92a1ee3122fa5d2a20b1f9308;hp=08598fc983f0707197945b781e5f4ada8bd711c4;hpb=4f0a5e7572a4257894b4bfede42c26d65152609e;p=catta diff --git a/avahi-core/response-sched.c b/avahi-core/response-sched.c index 08598fc..b194ef3 100644 --- a/avahi-core/response-sched.c +++ b/avahi-core/response-sched.c @@ -23,15 +23,25 @@ #include #endif +#include + #include #include #include "response-sched.h" #include "log.h" +#include "rr-util.h" +/* Local packets are supressed this long after sending them */ #define AVAHI_RESPONSE_HISTORY_MSEC 500 + +/* Local packets are deferred this long before sending them */ #define AVAHI_RESPONSE_DEFER_MSEC 20 + +/* Additional jitter for deferred packets */ #define AVAHI_RESPONSE_JITTER_MSEC 100 + +/* Remote packets can suppress local traffic as long as this value */ #define AVAHI_RESPONSE_SUPPRESS_MSEC 700 typedef struct AvahiResponseJob AvahiResponseJob; @@ -180,7 +190,7 @@ void avahi_response_scheduler_clear(AvahiResponseScheduler *s) { job_free(s, s->suppressed); } -static void enumerate_aux_records_callback(AvahiServer *s, AvahiRecord *r, int flush_cache, void* userdata) { +static void enumerate_aux_records_callback(AVAHI_GCC_UNUSED AvahiServer *s, AvahiRecord *r, int flush_cache, void* userdata) { AvahiResponseJob *rj = userdata; assert(r); @@ -237,10 +247,7 @@ static void send_response_packet(AvahiResponseScheduler *s, AvahiResponseJob *rj /* OK, the packet was too small, so create one that fits */ size = avahi_record_get_estimate_size(rj->record) + AVAHI_DNS_PACKET_HEADER_SIZE; - if (size > AVAHI_DNS_PACKET_MAX_SIZE) - size = AVAHI_DNS_PACKET_MAX_SIZE; - - if (!(p = avahi_dns_packet_new_response(size, 1))) + if (!(p = avahi_dns_packet_new_response(size + AVAHI_DNS_PACKET_EXTRA_SIZE, 1))) return; /* OOM */ if (!packet_add_response_job(s, p, rj)) { @@ -257,7 +264,7 @@ static void send_response_packet(AvahiResponseScheduler *s, AvahiResponseJob *rj avahi_dns_packet_free(p); } -static void elapse_callback(AvahiTimeEvent *e, void* data) { +static void elapse_callback(AVAHI_GCC_UNUSED AvahiTimeEvent *e, void* data) { AvahiResponseJob *rj = data; assert(rj);