mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-22 09:35:08 -07:00
[Server] Record only the dispatched command family; drop unused totals
processCommandContainer recorded every family in a container even though the base if/else-if dispatch processes at most one. An unauthenticated client could batch a session command (login) with fabricated developer, moderator, and admin entries and forge genuine-looking samples that were never executed or authorized. Mirror the base's selection, skip when the handler was already deleted, and skip entries whose extension number is -1 (which would otherwise wrap into the previous kind's id range). [Server] Drop dead process-lifetime byte/uptime counters txBytesTotal/rxBytesTotal added an atomic RMW to every socket write and read for counters nothing consumes (cmdGetServerStats fills tx_bytes, rx_bytes, and uptime_secs from the DB snapshot). Remove the two atomics and the getTxBytesTotal/getRxBytesTotal/getUptimeSeconds getters; the incTxBytes/incRxBytes slots and mutexes remain for the ISL legacy counters. [Protocol] Document kind 5 as developer in CommandStats NumKinds is 6 and the server emits kind_index = 5 for developer commands; the comment stopped at 4.
This commit is contained in:
parent
a8151b9e97
commit
b855b279a7
4 changed files with 51 additions and 36 deletions
|
|
@ -2,7 +2,7 @@ syntax = "proto2";
|
|||
import "response.proto";
|
||||
|
||||
message CommandStats {
|
||||
optional uint32 kind_index = 1; // 0=session, 1=room, 2=game, 3=moderator, 4=admin
|
||||
optional uint32 kind_index = 1; // 0=session, 1=room, 2=game, 3=moderator, 4=admin, 5=developer
|
||||
optional uint32 extension_number = 2; // protobuf extension number within the kind
|
||||
optional string command_name = 3; // e.g. "session/Command_Ping"
|
||||
optional uint64 count = 4; // number of times observed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue