mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 19:00:22 +08:00
add macos icmp ping
This commit is contained in:
parent
f42ef88cf6
commit
5a35943499
@ -1 +1 @@
|
||||
5780
|
||||
5781
|
||||
|
@ -184,18 +184,27 @@ namespace Qv2ray::components::latency::icmping
|
||||
sockaddr_in addr;
|
||||
socklen_t slen = sizeof(sockaddr_in);
|
||||
int rlen = 0;
|
||||
icmp resp;
|
||||
char buf[1024];
|
||||
do
|
||||
{
|
||||
do
|
||||
{
|
||||
rlen = recvfrom(socketId, &resp, sizeof(icmp), 0, (struct sockaddr *) &addr, &slen);
|
||||
rlen = recvfrom(socketId,buf , 1024, 0, (struct sockaddr *) &addr, &slen);
|
||||
} while (rlen == -1 && errno == EINTR);
|
||||
|
||||
// skip malformed
|
||||
if (rlen != sizeof(icmp))
|
||||
#ifdef Q_OS_MAC
|
||||
if(rlen<sizeof(icmp)+20)
|
||||
#else
|
||||
if (rlen < sizeof(icmp))
|
||||
#endif
|
||||
continue;
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
auto& resp=*reinterpret_cast<icmp*>(buf+20);
|
||||
#else
|
||||
auto& resp=*reinterpret_cast<icmp*>(buf);
|
||||
#endif
|
||||
// skip the ones we didn't send
|
||||
auto cur_seq = resp.icmp_hun.ih_idseq.icd_seq;
|
||||
if (cur_seq >= seq)
|
||||
|
@ -1183,16 +1183,9 @@ void PreferencesWindow::on_latencyTCPingRB_clicked()
|
||||
void PreferencesWindow::on_latencyICMPingRB_clicked()
|
||||
{
|
||||
LOADINGCHECK
|
||||
#ifdef Q_OS_MAC
|
||||
#warning No ICMPing support on macOS
|
||||
CurrentConfig.networkConfig.latencyTestingMethod = TCPING;
|
||||
latencyICMPingRB->setChecked(false);
|
||||
latencyTCPingRB->setChecked(true);
|
||||
#else
|
||||
CurrentConfig.networkConfig.latencyTestingMethod = ICMPING;
|
||||
latencyICMPingRB->setChecked(true);
|
||||
latencyTCPingRB->setChecked(false);
|
||||
#endif
|
||||
}
|
||||
|
||||
void PreferencesWindow::on_qvNetworkUATxt_editTextChanged(const QString &arg1)
|
||||
|
Loading…
Reference in New Issue
Block a user