X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=7994cf3edb295686a0b7955ea6c4faa8b7784323;hb=9bce109a7670d6fb3f52b7be9a3fb2a7e506dd40;hp=8da56922aa5735828f0e598773c613fb3b13d645;hpb=1a7277c64d74ae5ae18c48ebe09a522ffe7c696b;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index 8da56922..7994cf3e 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -226,6 +226,7 @@ static bool getlocaladdrname(char *destaddr, char *host, socklen_t hostlen) { } if(connect(sock, rai->ai_addr, rai->ai_addrlen) && !sockwouldblock(errno)) { + closesocket(sock); freeaddrinfo(rai); return false; } @@ -236,9 +237,12 @@ static bool getlocaladdrname(char *destaddr, char *host, socklen_t hostlen) { socklen_t sl = sizeof(sn); if(getsockname(sock, (struct sockaddr *)&sn, &sl)) { + closesocket(sock); return false; } + closesocket(sock); + if(getnameinfo((struct sockaddr *)&sn, sl, host, hostlen, NULL, 0, NI_NUMERICHOST | NI_NUMERICSERV)) { return false; } @@ -388,8 +392,6 @@ static char *get_my_hostname(meshlink_handle_t *mesh, uint32_t flags) { flags |= MESHLINK_INVITE_IPV4 | MESHLINK_INVITE_IPV6; } - fprintf(stderr, "flags = %u\n", flags); - // Add local addresses if requested if(flags & MESHLINK_INVITE_LOCAL) { if(flags & MESHLINK_INVITE_IPV4) { @@ -1457,7 +1459,7 @@ void meshlink_close(meshlink_handle_t *mesh) { if(mesh->conffile) { fclose(mesh->conffile); - } + } memset(mesh, 0, sizeof(*mesh));