@@ -239,14 +239,14 @@ OFArray OF_GENERIC(OFString *) *components; uint32_t addr; memset(&ret, '\0', sizeof(ret)); ret.family = OF_SOCKET_ADDRESS_FAMILY_IPV4; -#ifndef OF_WII - ret.length = sizeof(ret.sockaddr.in); +#if defined(OF_WII) || defined(OF_NINTENDO_3DS) + ret.length = 8; #else - ret.length = 8; + ret.length = sizeof(ret.sockaddr.in); #endif addrIn->sin_family = AF_INET; addrIn->sin_port = OF_BSWAP16_IF_LE(port); #ifdef OF_WII @@ -403,16 +403,16 @@ if (address1->family != address2->family) return false; switch (address1->family) { case OF_SOCKET_ADDRESS_FAMILY_IPV4: -#ifndef OF_WII - if (address1->length < (socklen_t)sizeof(struct sockaddr_in) || - address2->length < (socklen_t)sizeof(struct sockaddr_in)) +#if defined(OF_WII) || defined(OF_NINTENDO_3DS) + if (address1->length < 8 || address2->length < 8) @throw [OFInvalidArgumentException exception]; #else - if (address1->length < 8 || address2->length < 8) + if (address1->length < (socklen_t)sizeof(struct sockaddr_in) || + address2->length < (socklen_t)sizeof(struct sockaddr_in)) @throw [OFInvalidArgumentException exception]; #endif addrIn1 = &address1->sockaddr.in; addrIn2 = &address2->sockaddr.in; @@ -454,15 +454,15 @@ OF_HASH_INIT(hash); OF_HASH_ADD(hash, address->family); switch (address->family) { case OF_SOCKET_ADDRESS_FAMILY_IPV4: -#ifndef OF_WII - if (address->length < (socklen_t)sizeof(struct sockaddr_in)) +#if defined(OF_WII) || defined(OF_NINTENDO_3DS) + if (address->length < 8) @throw [OFInvalidArgumentException exception]; #else - if (address->length < 8) + if (address->length < (socklen_t)sizeof(struct sockaddr_in)) @throw [OFInvalidArgumentException exception]; #endif OF_HASH_ADD(hash, address->sockaddr.in.sin_port >> 8); OF_HASH_ADD(hash, address->sockaddr.in.sin_port);