X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=inline;f=avahi-core%2Fserver.c;h=558fec948b34546cad0c9b3cd92c2dcc480e8e60;hb=d77d1a036bc186878e804736f02cb38eef450e1d;hp=8955af93ed1af1625272204934692abeb2591460;hpb=f7e3b4fab6ba1bc98c6dbe859ccdef4fde6c5db2;p=catta diff --git a/avahi-core/server.c b/avahi-core/server.c index 8955af9..558fec9 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -1,5 +1,3 @@ -/* $Id$ */ - /*** This file is part of avahi. @@ -51,6 +49,8 @@ #include "domain-util.h" #include "rr-util.h" +#define AVAHI_DEFAULT_CACHE_ENTRIES_MAX 4096 + static void enum_aux_records(AvahiServer *s, AvahiInterface *i, const char *name, uint16_t type, void (*callback)(AvahiServer *s, AvahiRecord *r, int flush_cache, void* userdata), void* userdata) { assert(s); assert(i); @@ -659,17 +659,16 @@ static void handle_response_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInter avahi_dns_packet_get_field(p, AVAHI_DNS_FIELD_ARCOUNT); n > 0; n--) { AvahiRecord *record; int cache_flush = 0; -/* char *txt; */ if (!(record = avahi_dns_packet_consume_record(p, &cache_flush))) { avahi_log_warn(__FILE__": Packet too short or invalid while reading response record. (Maybe a UTF-8 problem?)"); break; } - if (!avahi_key_is_pattern(record->key) && !avahi_record_is_link_local_address(record)) { + if (!avahi_key_is_pattern(record->key)) { if (handle_conflict(s, i, record, cache_flush)) { - if (!from_local_iface) + if (!from_local_iface && !avahi_record_is_link_local_address(record)) reflect_response(s, i, record, cache_flush); avahi_cache_update(i->cache, record, cache_flush, a); avahi_response_scheduler_incoming(i->response_scheduler, record, cache_flush); @@ -680,7 +679,7 @@ static void handle_response_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInter } /* If the incoming response contained a conflicting record, some - records have been scheduling for sending. We need to flush them + records have been scheduled for sending. We need to flush them here. */ if (!avahi_record_list_is_empty(s->record_list)) avahi_server_generate_response(s, i, NULL, NULL, 0, 0, 1); @@ -1586,6 +1585,7 @@ AvahiServerConfig* avahi_server_config_init(AvahiServerConfig *c) { c->allow_point_to_point = 0; c->publish_aaaa_on_ipv4 = 1; c->publish_a_on_ipv6 = 0; + c->n_cache_entries_max = AVAHI_DEFAULT_CACHE_ENTRIES_MAX; return c; }