ASIOSession currently only supports read and write operations. In order to properly parse the proxy protocol (see
SERVER-58496) it would be helpful to be able to peek at the channel to see what bytes we've received without consuming them from the underlying buffers (in case we read past the end of the proxy protocol header in the stream). In this ticket, add a peek buffer to the ASIOSession sockets which interacts correctly with the extant read functions. Peeking should be opportunistic and never block.