Replace MSG_PEEK with a pre-received data interface.
authorKyle Nekritz <knekritz@fb.com>
Thu, 9 Mar 2017 16:25:27 +0000 (08:25 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Thu, 9 Mar 2017 16:35:27 +0000 (08:35 -0800)
commitfb9776fcdb9676e1bfd06afecc8f8c9e74f28439
treec836d3dcbea18a0dfb99ade265c47c9851989af9
parentad9b56c1b66912acdc80d2844105e4460687d229
Replace MSG_PEEK with a pre-received data interface.

Summary: MSG_PEEK was difficult if not impossible to use well since we do not provide a way wait for more data to arrive. If you are using setPeek on AsyncSocket, and you do not receive the amount of data you want, you must either abandon your peek attempt, or spin around the event base waiting for more data. This diff replaces the peek interface on AsyncSocket with a pre-received data interface, allowing users to insert data back onto the front of connections after reading some data in another layer.

Reviewed By: djwatson

Differential Revision: D4626315

fbshipit-source-id: c552e64f5b3ac9e40ea3358d65b4b9db848f5d74
folly/io/async/AsyncSSLSocket.cpp
folly/io/async/AsyncSSLSocket.h
folly/io/async/AsyncSocket.cpp
folly/io/async/AsyncSocket.h
folly/io/async/test/AsyncSocketTest2.cpp
folly/io/async/test/MockAsyncSSLSocket.h
folly/io/async/test/MockAsyncSocket.h