]> git.meshlink.io Git - catta/blobdiff - avahi-core/browse.c
Updated Brazilian Portuguese translation
[catta] / avahi-core / browse.c
index 09bc0fa1f869b92aae244dc88b1dbac8b922f85b..16d89548442ac1c3ed8f813f04170314718103c5 100644 (file)
 #include "browse.h"
 #include "log.h"
 #include "querier.h"
+#include "domain-util.h"
+#include "rr-util.h"
 
-#define AVAHI_MAX_LOOKUPS_PER_BROWSER 15
+#define AVAHI_LOOKUPS_PER_BROWSER_MAX 15
 
 struct AvahiSRBLookup {
     AvahiSRecordBrowser *record_browser;
@@ -92,7 +94,7 @@ static AvahiSRBLookup* lookup_new(
     assert(AVAHI_IF_VALID(interface));
     assert(AVAHI_PROTO_VALID(protocol));
 
-    if (b->n_lookups >= AVAHI_MAX_LOOKUPS_PER_BROWSER)
+    if (b->n_lookups >= AVAHI_LOOKUPS_PER_BROWSER_MAX)
         /* We don't like cyclic CNAMEs */
         return NULL;
     
@@ -193,7 +195,6 @@ static void browser_cancel(AvahiSRecordBrowser *b) {
     }
 }
 
-
 static void lookup_wide_area_callback(
     AvahiWideAreaLookupEngine *e,
     AvahiBrowserEvent event,
@@ -206,6 +207,7 @@ static void lookup_wide_area_callback(
 
     assert(e);
     assert(l);
+    assert(l->ref >= 1);
 
     b = l->record_browser;
 
@@ -278,8 +280,10 @@ static void lookup_multicast_callback(
                 lookup_handle_cname(l, interface, protocol, b->flags, r);
             else {
                 /* It's a normal record, so let's call the user callback */
-                assert(avahi_key_equal(b->key, l->key));
 
+                if (avahi_server_is_record_local(b->server, interface, protocol, r))
+                    flags |= AVAHI_LOOKUP_RESULT_LOCAL;
+                
                 b->callback(b, interface, protocol, event, r, flags, b->userdata);
             }
             break;
@@ -418,6 +422,7 @@ static void lookup_handle_cname(AvahiSRBLookup *l, AvahiIfIndex interface, Avahi
     l->cname_lookups = avahi_rlist_prepend(l->cname_lookups, lookup_ref(n));
 
     lookup_go(n);
+    lookup_unref(n);
 }
 
 static void lookup_drop_cname(AvahiSRBLookup *l, AvahiIfIndex interface, AvahiProtocol protocol, AvahiLookupFlags flags, AvahiRecord *r) {
@@ -450,7 +455,7 @@ static void lookup_drop_cname(AvahiSRBLookup *l, AvahiIfIndex interface, AvahiPr
     }
 }
 
-static void defer_callback(AvahiTimeEvent *e, void *userdata) {
+static void defer_callback(AVAHI_GCC_UNUSED AvahiTimeEvent *e, void *userdata) {
     AvahiSRecordBrowser *b = userdata;
     int n;