1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-09 10:00:57 +03:00

use recvmsg on client

Summary:
Use the new recvmsg api on the client to receive a packet
from AsyncUDPSocket

Reviewed By: mjoras

Differential Revision: D18797963

fbshipit-source-id: 319d5c41f3a868e7b78947fdbcf2c411b6d7fbf0
This commit is contained in:
Subodh Iyengar
2019-12-04 12:02:24 -08:00
committed by Facebook Github Bot
parent edca9e794f
commit 02d473e8ec
3 changed files with 64 additions and 33 deletions

View File

@@ -1483,12 +1483,18 @@ class QuicClientTransportTest : public Test {
folly::ByteRange data,
bool writes = true) {
ASSERT_TRUE(networkReadCallback);
uint8_t* buf = nullptr;
size_t len = 0;
networkReadCallback->getReadBuffer((void**)&buf, &len);
ASSERT_GT(len, data.size());
memcpy(buf, data.data(), data.size());
networkReadCallback->onDataAvailable(addr, data.size(), false);
EXPECT_CALL(*sock, recvmsg(_, _))
.WillOnce(Invoke([&](struct msghdr* msg, int) {
DCHECK_GT(msg->msg_iovlen, 0);
memcpy(msg->msg_iov[0].iov_base, data.data(), data.size());
if (msg->msg_name) {
socklen_t msg_len =
addr.getAddress(static_cast<sockaddr_storage*>(msg->msg_name));
msg->msg_namelen = msg_len;
}
return data.size();
}));
networkReadCallback->onNotifyDataAvailable();
if (writes) {
loopForWrites();
}