|Anonymous | Login | Signup for a new account||2022-05-28 13:00 UTC|
|My View | View Issues | Change Log | Roadmap | Doomseeker Issue Support Ranking | Rules | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003992||Doomseeker||[All Projects] Bug||public||2022-04-12 21:18||2022-05-04 15:18|
|Target Version||Fixed in Version|
|Summary||0003992: Zandronum plugin: awkward ping calculation for servers can bug out|
|Description||Zandronum plugins rely on the server launcher protocol to calculate the ping. The current time is retrieved in a buggy way from the ZandronumServer::millisecondTime() method, sent to the server in the query challenge, then retrieved back from the server's query reply, then compared again to ZandronumServer::millisecondTime() to determine the server's ping.|
This can bug out when:
1. The computer or the user adjusts the time.
2. The time on the computer changes from 23:59:59 to 00:00:00 of the next day.
3. The server decides to play a trick on us and send back a random value.
Moreover, the ZandronumServer::millisecondTime() is bugged itself because there's one 0 missing when multiplying the hour by the amount of milliseconds.
|Additional Information||Doomseeker already has a generic way to set the server's ping. There's no need to rely on the Zandronum's Launcher protocol mechanism.|
Zandronum server launcher protocol offers a Long field to pass the time around:
> Long Time Current time, this will be sent back to you so you can determine ping.
|Attached Files|| ds_zandronum_negative_ping.png [^] (4,149 bytes) 2022-04-12 21:20
|Let's just remove the custom Zandronum code, send all zeros in the "Long Time" query field, and just rely on Doomseeker's built-in method of determining ping, which is based on the monotonic clock of QElapsedTimer.|
The awkard feature got ctrl+x'd
edited on: 2022-05-03 22:57
The core codebase no longer has calls to setPing and setPingIsSet functions, after this change. Some things change d->ping and d->bPingIsSet directly, without the function callback. There are code comments like in Server::refreshStops referring to plugins potentially setting the ping. Are these functions going to be deprecated?
|Only registered users can voice their support. Click here to register, or here to log in.|
|Supporters:||No one explicitly supports this issue yet.|
|Opponents:||No one explicitly opposes this issue yet.|
|2022-04-12 21:18||Zalewa||New Issue|
|2022-04-12 21:19||Zalewa||Note Added: 0022190|
|2022-04-12 21:20||Zalewa||File Added: ds_zandronum_negative_ping.png|
|2022-05-02 17:00||Zalewa||Assigned To||=> Zalewa|
|2022-05-02 17:00||Zalewa||Status||new => assigned|
|2022-05-02 17:23||Zalewa||Note Added: 0022203|
|2022-05-02 17:23||Zalewa||Status||assigned => needs testing|
|2022-05-03 22:51||WubTheCaptain||Note Added: 0022205|
|2022-05-03 22:57||WubTheCaptain||Note Edited: 0022205||View Revisions|
|2022-05-03 22:58||WubTheCaptain||Status||needs testing => needs review|
|2022-05-04 15:18||Zalewa||Note Added: 0022211|
Questions or other issues? Contact Us.
|Copyright © 2000 - 2022 MantisBT Team|