summaryrefslogtreecommitdiffstats
path: root/avahi-core
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-06-21 23:45:41 +0000
committerLennart Poettering <lennart@poettering.net>2005-06-21 23:45:41 +0000
commit0612e247a644046a01b018534cfc27e4af1d13e6 (patch)
tree68eb264997489b8a033a69172fde6855086062f6 /avahi-core
parent7d0391c1e7e158b9f60614b95c1d7fefde1b70a7 (diff)
* remove stale UNIX sockets before creating new ones
* make sure to flush outbound records after conflict detection git-svn-id: file:///home/lennart/svn/public/avahi/trunk@141 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core')
-rw-r--r--avahi-core/server.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/avahi-core/server.c b/avahi-core/server.c
index a020f64..356a917 100644
--- a/avahi-core/server.c
+++ b/avahi-core/server.c
@@ -615,7 +615,6 @@ static void handle_query_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInterfac
fail:
avahi_record_list_flush(s->record_list);
-
}
static void handle_response_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInterface *i, const AvahiAddress *a) {
@@ -653,6 +652,12 @@ static void handle_response_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInter
avahi_record_unref(record);
}
+
+ /* If the incoming response contained a conflicting record, some
+ records have been scheduling for sending. We need to flush them
+ here. */
+ if (!avahi_record_list_empty(s->record_list))
+ avahi_server_generate_response(s, i, NULL, NULL, 0, FALSE);
}
static AvahiLegacyUnicastReflectSlot* allocate_slot(AvahiServer *s) {