diff --git a/SpeedTestClient.cpp b/SpeedTestClient.cpp index fa58697..017a925 100644 --- a/SpeedTestClient.cpp +++ b/SpeedTestClient.cpp @@ -188,9 +188,11 @@ bool SpeedTestClient::mkSocket() { } auto hostp = hostport(); - - struct hostent *server = gethostbyname(hostp.first.c_str()); - if (server == nullptr) { + struct hostent server; + char tmpbuf[BUFSIZ]; + struct hostent *result; + int errnop; + if (gethostbyname_r(hostp.first.c_str(), &server, (char *)&tmpbuf, BUFSIZ, &result, &errnop)) { return false; } @@ -198,7 +200,7 @@ bool SpeedTestClient::mkSocket() { struct sockaddr_in serv_addr{}; memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; - memcpy(&serv_addr.sin_addr.s_addr, server->h_addr, (size_t)server->h_length); + memcpy(&serv_addr.sin_addr.s_addr, server.h_addr, (size_t)server.h_length); serv_addr.sin_port = htons(static_cast(portno));