Skip to content

Commit

Permalink
remove redundant mingw patches, fix uint32==uint64 comparison tautology
Browse files Browse the repository at this point in the history
  • Loading branch information
cshenton committed Mar 11, 2024
1 parent 6551855 commit 4ed826f
Showing 1 changed file with 1 addition and 186 deletions.
187 changes: 1 addition & 186 deletions netcode.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,191 +180,6 @@ void netcode_default_free_function( void * context, void * pointer )

#endif

// ----------------------------------------------------------------

#ifdef __MINGW32__
const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt)
{
if ( af == AF_INET )
{
struct sockaddr_in in;
memset(&in, 0, sizeof(in));
in.sin_family = AF_INET;
memcpy(&in.sin_addr, src, sizeof(struct in_addr));
getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in), dst, cnt, NULL, 0, NI_NUMERICHOST);
return dst;
}
else if ( af == AF_INET6 )
{
struct sockaddr_in6 in;
memset(&in, 0, sizeof(in));
in.sin6_family = AF_INET6;
memcpy(&in.sin6_addr, src, sizeof(struct in_addr6));
getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in6), dst, cnt, NULL, 0, NI_NUMERICHOST);
return dst;
}

return NULL;
}

#define NS_INADDRSZ 4
#define NS_IN6ADDRSZ 16
#define NS_INT16SZ 2

int inet_pton4(const char *src, char *dst)
{
uint8_t tmp[NS_INADDRSZ], *tp;
int saw_digit = 0;
int octets = 0;
*(tp = tmp) = 0;
int ch;

while ((ch = *src++) != '\0')
{
if ( ch >= '0' && ch <= '9' )
{
uint32_t n = *tp * 10 + (ch - '0');

if ( saw_digit && *tp == 0 )
return 0;
if ( n > 255 )
return 0;
*tp = n;
if ( !saw_digit )
{
if ( ++octets > 4 )
return 0;
saw_digit = 1;
}
}
else if ( ch == '.' && saw_digit )
{
if ( octets == 4 )
return 0;
*++tp = 0;
saw_digit = 0;
}
else
return 0;
}
if ( octets < 4 )
return 0;

memcpy(dst, tmp, NS_INADDRSZ);

return 1;
}

int inet_pton6(const char *src, char *dst)
{
static const char xdigits[] = "0123456789abcdef";
uint8_t tmp[NS_IN6ADDRSZ];
uint8_t *tp = (uint8_t*) memset(tmp, '\0', NS_IN6ADDRSZ);
uint8_t *endp = tp + NS_IN6ADDRSZ;
uint8_t *colonp = NULL;

// Leading :: requires some special handling
if ( *src == ':' )
{
if ( *++src != ':' )
return 0;
}

const char *curtok = src;
int saw_xdigit = 0;
uint32_t val = 0;
int ch;

while ( (ch = tolower(*src++)) != '\0' )
{
const char *pch = strchr(xdigits, ch);
if ( pch != NULL )
{
val <<= 4;
val |= (pch - xdigits);
if ( val > 0xffff )
return 0;
saw_xdigit = 1;
continue;
}
if ( ch == ':' )
{
curtok = src;
if ( !saw_xdigit )
{
if ( colonp )
return 0;
colonp = tp;
continue;
}
else if ( *src == '\0' )
{
return 0;
}
if ( tp + NS_INT16SZ > endp )
return 0;
*tp++ = (uint8_t) (val >> 8) & 0xff;
*tp++ = (uint8_t) val & 0xff;
saw_xdigit = 0;
val = 0;
continue;
}
if ( ch == '.' && ((tp + NS_INADDRSZ) <= endp) && inet_pton4(curtok, (char*) tp) > 0 )
{
tp += NS_INADDRSZ;
saw_xdigit = 0;
break;
}
return 0;
}

if ( saw_xdigit )
{
if ( tp + NS_INT16SZ > endp )
return 0;
*tp++ = (uint8_t) (val >> 8) & 0xff;
*tp++ = (uint8_t) val & 0xff;
}

if ( colonp != NULL )
{
const int n = tp - colonp;
if ( tp == endp )
return 0;
for (int i = 1; i <= n; i++)
{
endp[-i] = colonp[n - i];
colonp[n - i] = 0;
}
tp = endp;
}
if ( tp != endp )
return 0;

memcpy(dst, tmp, NS_IN6ADDRSZ);

return 1;
}

int inet_pton(int af, const char *src, void *dst)
{
switch ( af )
{
case AF_INET:
return inet_pton4(src, (char *) dst);

case AF_INET6:
return inet_pton6(src, (char *) dst);

default:
return -1;
}
}

#endif

// ----------------------------------------------------------------

int netcode_parse_address( NETCODE_CONST char * address_string_in, struct netcode_address_t * address )
{
netcode_assert( address_string_in );
Expand Down Expand Up @@ -645,7 +460,7 @@ int netcode_socket_create( struct netcode_socket_t * s, struct netcode_address_t
s->handle = socket( ( address->type == NETCODE_ADDRESS_IPV6 ) ? AF_INET6 : AF_INET, SOCK_DGRAM, IPPROTO_UDP );

#if NETCODE_PLATFORM == NETCODE_PLATFORM_WINDOWS
if ( s->handle == INVALID_SOCKET )
if ( s->handle == (uint32_t)INVALID_SOCKET )
#else // #if NETCODE_PLATFORM == NETCODE_PLATFORM_WINDOWS
if ( s->handle <= 0 )
#endif // #if NETCODE_PLATFORM == NETCODE_PLATFORM_WINDOWS
Expand Down

0 comments on commit 4ed826f

Please sign in to comment.