]> git.meshlink.io Git - meshlink/blobdiff - src/discovery.c
cleanup of entry group in discovery_stop
[meshlink] / src / discovery.c
index dd35bebdf6a73332e6d5f2e05a7dd219f30b99f0..cf1dd5e214fb19c34271fa9af540b4edb9331ebf 100644 (file)
@@ -281,7 +281,7 @@ static void discovery_resolve_callback(AvahiSServiceResolver *resolver, AvahiIfI
                                 case AVAHI_PROTO_INET:
                                     {
                                         naddress.in.sin_family = AF_INET;
-                                        naddress.in.sin_port = port;
+                                        naddress.in.sin_port = htons(port);
                                         naddress.in.sin_addr.s_addr = address->data.ipv4.address;
                                     }
                                     break;
@@ -289,7 +289,7 @@ static void discovery_resolve_callback(AvahiSServiceResolver *resolver, AvahiIfI
                                 case AVAHI_PROTO_INET6:
                                     {
                                         naddress.in6.sin6_family = AF_INET6;
-                                        naddress.in6.sin6_port = port;
+                                        naddress.in6.sin6_port = htons(port);
                                         memcpy(naddress.in6.sin6_addr.s6_addr, address->data.ipv6.address, sizeof(naddress.in6.sin6_addr.s6_addr));
                                     }
                                     break;
@@ -536,6 +536,13 @@ void discovery_stop(meshlink_handle_t *mesh)
         mesh->avahi_browser = NULL;
     }
 
+    if(mesh->avahi_group)
+    {
+        avahi_s_entry_group_reset(mesh->avahi_group);
+        avahi_s_entry_group_free(mesh->avahi_group);
+        mesh->avahi_group = NULL;
+    }
+
     if(mesh->avahi_server != NULL)
     {
         avahi_server_free(mesh->avahi_server);