bee8b92a6db2855313046b99d0537222cfeb69d3
CommandList::processRequest() upper-cases the incoming keyword before looking it up, but add() stored whatever case the caller passed in verbatim - any registration not already uppercase could then never be matched by any input at all, since upper-casing a non-uppercase string cannot produce a match against a non-uppercase key. This was invisible on BARANTMail/APIServer (their own commands - SMTP, POP3/IMAP, the admin console - all happen to already be registered uppercase) but confirmed, via a full Zephora game client/server protocol comparison, to make literally every Zephora game command unreachable, including the base TCPServer's own publish/subscribe/event/etc. registrations that the whole subscription layer depends on. Folding at add() time keeps registration and lookup permanently in sync regardless of caller case; already-uppercase callers are unaffected (idempotent).
Description
This repository provides core functionality for TCP and UDP servers using the epoll linux function.
184 MiB
0 Stars
1 Watchers
0 Forks
Languages
C++
99.6%
Shell
0.4%