1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-24 04:01:07 +03:00

Remove throws from CryptoFactory

Summary: Continuing the theme, removing them from the CryptoFactory and translating to Expected.

Reviewed By: kvtsoy, jbeshay

Differential Revision: D74676120

fbshipit-source-id: 715b497e68a4e3004811038cba479c443d5398fd
This commit is contained in:
Matt Joras
2025-05-16 14:19:45 -07:00
committed by Facebook GitHub Bot
parent c088421ecf
commit bf71d17f2c
36 changed files with 617 additions and 300 deletions

View File

@@ -1037,8 +1037,13 @@ folly::Expected<folly::Unit, QuicError> onServerReadDataFromOpen(
conn.serverHandshakeLayer->getCryptoFactory();
conn.readCodec = std::make_unique<QuicReadCodec>(QuicNodeType::Server);
conn.readCodec->setConnectionStatsCallback(conn.statsCallback);
conn.readCodec->setInitialReadCipher(cryptoFactory.getClientInitialCipher(
initialDestinationConnectionId, version));
auto clientInitialCipherResult = cryptoFactory.getClientInitialCipher(
initialDestinationConnectionId, version);
if (clientInitialCipherResult.hasError()) {
return folly::makeUnexpected(clientInitialCipherResult.error());
}
conn.readCodec->setInitialReadCipher(
std::move(clientInitialCipherResult.value()));
conn.readCodec->setClientConnectionId(clientConnectionId);
conn.readCodec->setServerConnectionId(*conn.serverConnectionId);
if (conn.qLogger) {
@@ -1050,14 +1055,30 @@ folly::Expected<folly::Unit, QuicError> onServerReadDataFromOpen(
version,
conn.transportSettings.maybeAckReceiveTimestampsConfigSentToPeer,
conn.transportSettings.advertisedExtendedAckFeatures));
conn.initialWriteCipher = cryptoFactory.getServerInitialCipher(
auto serverInitialCipherResult = cryptoFactory.getServerInitialCipher(
initialDestinationConnectionId, version);
if (serverInitialCipherResult.hasError()) {
return folly::makeUnexpected(serverInitialCipherResult.error());
}
conn.initialWriteCipher = std::move(serverInitialCipherResult.value());
conn.readCodec->setInitialHeaderCipher(
auto clientInitialHeaderCipherResult =
cryptoFactory.makeClientInitialHeaderCipher(
initialDestinationConnectionId, version));
conn.initialHeaderCipher = cryptoFactory.makeServerInitialHeaderCipher(
initialDestinationConnectionId, version);
initialDestinationConnectionId, version);
if (clientInitialHeaderCipherResult.hasError()) {
return folly::makeUnexpected(clientInitialHeaderCipherResult.error());
}
conn.readCodec->setInitialHeaderCipher(
std::move(clientInitialHeaderCipherResult.value()));
auto serverInitialHeaderCipherResult =
cryptoFactory.makeServerInitialHeaderCipher(
initialDestinationConnectionId, version);
if (serverInitialHeaderCipherResult.hasError()) {
return folly::makeUnexpected(serverInitialHeaderCipherResult.error());
}
conn.initialHeaderCipher =
std::move(serverInitialHeaderCipherResult.value());
conn.peerAddress = conn.originalPeerAddress;
}
BufQueue& udpData = readData.udpPacket.buf;