mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-04 19:36:27 +00:00
fractional time -W
This commit is contained in:
@@ -104,11 +104,13 @@ std::pair<s32, Errno> IcmpSocket::RecvFrom(int flags, std::span<u8> message, Net
|
|||||||
return {0, Errno::E_SUCCESS};
|
return {0, Errno::E_SUCCESS};
|
||||||
// PLEASE DON'T KILL ME, I SWEAR THIS IS LEGITIMATELY THE BEST WAY TO DO IT
|
// PLEASE DON'T KILL ME, I SWEAR THIS IS LEGITIMATELY THE BEST WAY TO DO IT
|
||||||
// IF YOU OPEN socket() GOOGLE WILL STRAIGHT UP IP BAN YOU AFTER 2 HOURS
|
// IF YOU OPEN socket() GOOGLE WILL STRAIGHT UP IP BAN YOU AFTER 2 HOURS
|
||||||
auto const rcv_timeout = std::max<u64>(rcv_timeo.tv_sec, 1);
|
auto rcv_time = f64(std::min<u64>(rcv_timeo.tv_sec, 600)) + f64(std::min<u64>(rcv_timeo.tv_usec, 1000000)) * f64(1.0 / 1000000.0);
|
||||||
|
if (!std::isfinite(rcv_time) || std::isnan(rcv_time))
|
||||||
|
rcv_time = 1.0;
|
||||||
#ifdef __FreeBSD__
|
#ifdef __FreeBSD__
|
||||||
auto const cmd = fmt::format("ping -t {} -o {}.{}.{}.{}", rcv_timeout, addr->ip[0], addr->ip[1], addr->ip[2], addr->ip[3]);
|
auto const cmd = fmt::format("ping -W {} -o {}.{}.{}.{}", rcv_time, addr->ip[0], addr->ip[1], addr->ip[2], addr->ip[3]);
|
||||||
#elif defined(__linux__)
|
#elif defined(__linux__)
|
||||||
auto const cmd = fmt::format("ping -c 1 -W {} {}.{}.{}.{}", rcv_timeout, addr->ip[0], addr->ip[1], addr->ip[2], addr->ip[3]);
|
auto const cmd = fmt::format("ping -W {} -c 1 {}.{}.{}.{}", rcv_time, addr->ip[0], addr->ip[1], addr->ip[2], addr->ip[3]);
|
||||||
#endif
|
#endif
|
||||||
if (::system(cmd.c_str()) == 0) {
|
if (::system(cmd.c_str()) == 0) {
|
||||||
std::vector<u8> data{
|
std::vector<u8> data{
|
||||||
|
|||||||
Reference in New Issue
Block a user