Right now the socket input path will handle the telnet SB (subnegotiation) hooks directly but queue the normal text into the input buffer for later processing. This is fine for normal subnegotiation but for ATCP/GMCP this means we'll end up seeing a burst of those hooks run BEFORE the text data that they may be wrapping.
So, we'll want to populate / flush the socket data to get it handled before we do the SB handling.
This feels a bit .. suboptimal though. I wonder what it may break in production.
Right now the socket input path will handle the telnet SB (subnegotiation) hooks directly but queue the normal text into the input buffer for later processing. This is fine for normal subnegotiation but for ATCP/GMCP this means we'll end up seeing a burst of those hooks run BEFORE the text data that they may be wrapping.
So, we'll want to populate / flush the socket data to get it handled before we do the SB handling. This feels a bit .. suboptimal though. I wonder what it may break in production.