- return flx_record_new(r->key, r->data, r->size, 0);
+ g = flx_record_copy(r);
+ g_assert(g->ref == 1);
+ g->ttl = 0;
+
+ return g;
+}
+
+
+static void send_goodbye_callback(flxInterfaceMonitor *m, flxInterface *i, gpointer userdata) {
+ flxServerEntry *e = userdata;
+ flxRecord *g;
+
+ g_assert(m);
+ g_assert(i);
+ g_assert(e);
+
+ if (!flx_interface_match(i, e->interface, e->protocol))
+ return;
+
+ if (e->flags & FLX_SERVER_ENTRY_NOANNOUNCE)
+ return;
+
+ if (!flx_entry_established(m->server, e, i))
+ return;
+
+ g = make_goodbye_record(e->record);
+ flx_interface_post_response(i, NULL, g, e->flags & FLX_SERVER_ENTRY_UNIQUE, TRUE);
+ flx_record_unref(g);