Index: src/resolver.m ================================================================== --- src/resolver.m +++ src/resolver.m @@ -225,11 +225,12 @@ ip = he->h_addr_list; *ip != NULL; retIter++, resultsIter++, addrsIter++, ip++) { addrsIter->sin_family = he->h_addrtype; addrsIter->sin_port = OF_BSWAP16_IF_LE(port); - if (he->h_length > sizeof(addrsIter->sin_addr.s_addr)) + if ((size_t)he->h_length > + sizeof(addrsIter->sin_addr.s_addr)) @throw [OFOutOfRangeException exception]; memcpy(&addrsIter->sin_addr.s_addr, *ip, he->h_length); resultsIter->family = he->h_addrtype; Index: src/socket_helpers.h ================================================================== --- src/socket_helpers.h +++ src/socket_helpers.h @@ -62,10 +62,14 @@ #endif #ifdef OF_WINDOWS # define close(sock) closesocket(sock) #endif + +#ifdef OF_MORPHOS +typedef uint32_t in_addr_t; +#endif #ifdef OF_WII # define accept(sock, addr, addrlen) net_accept(sock, addr, addrlen) # define bind(sock, addr, addrlen) net_bind(sock, addr, addrlen) # define close(sock) net_close(sock)