diff options
author | Lennart Poettering <lennart@poettering.net> | 2005-09-26 01:34:43 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2005-09-26 01:34:43 +0000 |
commit | 6d236291b17f2d02e15d4c6f1c87bc7b3fc4e982 (patch) | |
tree | 059dfb0043280593de0df7a2308d9a37f69b35e7 /avahi-core/server.c | |
parent | dae4b6457a2af1f1c7f340d709c9a65b8fd7f035 (diff) |
* Implement POOF aka "Passive Observation of Failure"
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@632 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core/server.c')
-rw-r--r-- | avahi-core/server.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/avahi-core/server.c b/avahi-core/server.c index 2714298..dc63c67 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -613,8 +613,10 @@ static void handle_query_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInterfac goto fail; } - if (!legacy_unicast && !from_local_iface) + if (!legacy_unicast && !from_local_iface) { reflect_query(s, i, key); + avahi_cache_start_poof(i->cache, key, a); + } if (avahi_dns_packet_get_field(p, AVAHI_DNS_FIELD_ANCOUNT) == 0 && !(avahi_dns_packet_get_field(p, AVAHI_DNS_FIELD_FLAGS) & AVAHI_DNS_FLAG_TC)) @@ -641,6 +643,7 @@ static void handle_query_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInterfac if (handle_conflict(s, i, record, unique, a)) { avahi_response_scheduler_suppress(i->response_scheduler, record, a); avahi_record_list_drop(s->record_list, record); + avahi_cache_stop_poof(i->cache, record, a); } avahi_record_unref(record); |