Correctly convert remote port bytecode to uint16 port number. (#321)
* Correctly convert remote port bytecode to uint16 port number. Copied the network_to_host_short function from the ASIO library to convert the remote port byte code to a uint16 number. * Switched from uint16_t to unsigned short to work in Windows * Updated missed uint16_t to unsigned short
This commit is contained in:
parent
9bbd1f1b30
commit
3f1fc6906c
@ -278,4 +278,17 @@ namespace ix
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert network bytes to host bytes. Copied from the ASIO library
|
||||||
|
unsigned short network_to_host_short(unsigned short value)
|
||||||
|
{
|
||||||
|
#if defined(_WIN32)
|
||||||
|
unsigned char* value_p = reinterpret_cast<unsigned char*>(&value);
|
||||||
|
unsigned short result = (static_cast<unsigned short>(value_p[0]) << 8)
|
||||||
|
| static_cast<unsigned short>(value_p[1]);
|
||||||
|
return result;
|
||||||
|
#else // defined(_WIN32)
|
||||||
|
return ntohs(value);
|
||||||
|
#endif // defined(_WIN32)
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ix
|
} // namespace ix
|
||||||
|
@ -81,4 +81,6 @@ namespace ix
|
|||||||
|
|
||||||
const char* inet_ntop(int af, const void* src, char* dst, socklen_t size);
|
const char* inet_ntop(int af, const void* src, char* dst, socklen_t size);
|
||||||
int inet_pton(int af, const char* src, void* dst);
|
int inet_pton(int af, const char* src, void* dst);
|
||||||
|
|
||||||
|
unsigned short network_to_host_short(unsigned short value);
|
||||||
} // namespace ix
|
} // namespace ix
|
||||||
|
@ -351,7 +351,7 @@ namespace ix
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
remotePort = client.sin_port;
|
remotePort = ix::network_to_host_short(client.sin_port);
|
||||||
remoteIp = remoteIp4;
|
remoteIp = remoteIp4;
|
||||||
}
|
}
|
||||||
else // AF_INET6
|
else // AF_INET6
|
||||||
@ -371,7 +371,7 @@ namespace ix
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
remotePort = client.sin_port;
|
remotePort = ix::network_to_host_short(client.sin_port);
|
||||||
remoteIp = remoteIp6;
|
remoteIp = remoteIp6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user