]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Correctly remove all duplicates when having many hostnames in an invitation URL.
[meshlink] / src / meshlink.c
index b9cc18771d22ef5f2c01eba18b38937f3619a4e8..f87e4de0ec8326d34c07cc5b6b9a196ea10adbda 100644 (file)
@@ -489,7 +489,7 @@ static char *get_my_hostname(meshlink_handle_t *mesh, uint32_t flags) {
                }
        }
 
-       remove_duplicate_hostnames(hostname, port, 4);
+       remove_duplicate_hostnames(hostname, port, n);
 
        // Resolve the hostnames
        for(int i = 0; i < n; i++) {
@@ -510,8 +510,10 @@ static char *get_my_hostname(meshlink_handle_t *mesh, uint32_t flags) {
                        continue;
                }
 
-               // Remember the address
-               node_add_recent_address(mesh, mesh->self, (sockaddr_t *)ai_in->ai_addr);
+               // Remember the address(es)
+               for(struct addrinfo *aip = ai_in; aip; aip = aip->ai_next) {
+                       node_add_recent_address(mesh, mesh->self, (sockaddr_t *)aip->ai_addr);
+               }
 
                if(flags & MESHLINK_INVITE_NUMERIC) {
                        // We don't need to do any further conversion