| @@ -98,10 +98,7 @@ static void findIPAddresses (int sock, Array<IPAddress>& result) | |||||
| { | { | ||||
| ifconf cfg; | ifconf cfg; | ||||
| HeapBlock<char> buffer; | HeapBlock<char> buffer; | ||||
| size_t bufferSize = 4096; | |||||
| const size_t ifreq_size_in = IFNAMSIZ + sizeof (struct sockaddr_in); | |||||
| const size_t ifreq_size_in6 = IFNAMSIZ + sizeof (struct sockaddr_in6); | |||||
| size_t bufferSize = 1024; | |||||
| do | do | ||||
| { | { | ||||
| @@ -114,10 +111,10 @@ static void findIPAddresses (int sock, Array<IPAddress>& result) | |||||
| if (ioctl (sock, SIOCGIFCONF, &cfg) < 0 && errno != EINVAL) | if (ioctl (sock, SIOCGIFCONF, &cfg) < 0 && errno != EINVAL) | ||||
| return; | return; | ||||
| } while (bufferSize < cfg.ifc_len + 2 * ifreq_size_in6); | |||||
| } while (bufferSize < cfg.ifc_len + 2 * (IFNAMSIZ + sizeof (struct sockaddr_in6))); | |||||
| #if JUCE_MAC || JUCE_IOS | #if JUCE_MAC || JUCE_IOS | ||||
| while (cfg.ifc_len >= (int) ifreq_size_in) | |||||
| while (cfg.ifc_len >= (int) (IFNAMSIZ + sizeof (struct sockaddr_in))) | |||||
| { | { | ||||
| if (cfg.ifc_req->ifr_addr.sa_family == AF_INET) // Skip non-internet addresses | if (cfg.ifc_req->ifr_addr.sa_family == AF_INET) // Skip non-internet addresses | ||||
| addAddress ((const sockaddr_in*) &cfg.ifc_req->ifr_addr, result); | addAddress ((const sockaddr_in*) &cfg.ifc_req->ifr_addr, result); | ||||