]> git.meshlink.io Git - catta/blobdiff - avahi-core/resolve-service.c
stupid typo fix
[catta] / avahi-core / resolve-service.c
index 347de777bc9280c6138fef2296532005c03e50b2..6dbca40ee2726df25f5a78bc982973b383b6563a 100644 (file)
@@ -75,6 +75,8 @@ static void finish(AvahiSServiceResolver *r, AvahiResolverEvent event) {
         AvahiAddress a;
         char sn[256], st[256];
         size_t i;
+
+        assert(event == AVAHI_RESOLVER_FOUND);
         
         assert(r->srv_record);
         assert(r->txt_record);
@@ -155,8 +157,16 @@ static void record_browser_callback(AvahiSRecordBrowser*rr, AvahiIfIndex interfa
                 if (!r->srv_record) {
                     r->srv_record = avahi_record_ref(record);
                     changed = 1;
-                    
-                    assert(!r->record_browser_a && !r->record_browser_aaaa);
+
+                    if (r->record_browser_a) {
+                        avahi_s_record_browser_free(r->record_browser_a);
+                        r->record_browser_a = NULL;
+                    }
+
+                    if (r->record_browser_aaaa) {
+                        avahi_s_record_browser_free(r->record_browser_aaaa);
+                        r->record_browser_aaaa = NULL;
+                    }
                     
                     if (r->address_protocol == AVAHI_PROTO_INET || r->address_protocol == AVAHI_PROTO_UNSPEC) {
                         AvahiKey *k = avahi_key_new(r->srv_record->data.srv.name, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_A);
@@ -198,10 +208,11 @@ static void record_browser_callback(AvahiSRecordBrowser*rr, AvahiIfIndex interfa
     } else {
         assert(event == AVAHI_BROWSER_REMOVE);
 
+        
         switch (record->key->type) {
             case AVAHI_DNS_TYPE_SRV:
 
-                if (avahi_record_equal_no_ttl(record, r->srv_record)) {
+                if (r->srv_record && avahi_record_equal_no_ttl(record, r->srv_record)) {
                     avahi_record_unref(r->srv_record);
                     r->srv_record = NULL;
 
@@ -214,7 +225,7 @@ static void record_browser_callback(AvahiSRecordBrowser*rr, AvahiIfIndex interfa
 
             case AVAHI_DNS_TYPE_TXT:
 
-                if (avahi_record_equal_no_ttl(record, r->txt_record)) {
+                if (r->txt_record && avahi_record_equal_no_ttl(record, r->txt_record)) {
                     avahi_record_unref(r->txt_record);
                     r->txt_record = NULL;
 
@@ -227,7 +238,7 @@ static void record_browser_callback(AvahiSRecordBrowser*rr, AvahiIfIndex interfa
             case AVAHI_DNS_TYPE_A:
             case AVAHI_DNS_TYPE_AAAA:
 
-                if (avahi_record_equal_no_ttl(record, r->address_record)) {
+                if (r->address_record && avahi_record_equal_no_ttl(record, r->address_record)) {
                     avahi_record_unref(r->address_record);
                     r->address_record = NULL;