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

::getServerTransportParams signature change

Summary:
change signature of both `ClientHandshake::getServerTransportParams` & `ClientTransportParametersExtension::getServerTransportParams`

from:
```
folly::Optional<ServerTransportParameters> getServerTransportParams()
```
to:
```
const folly::Optional<ServerTransportParameters>& getServerTransportParams()
```

previously this would `std::move(serverTransportParameters_)` after reading it, effectively making it possible to only read the value once.

Reviewed By: kvtsoy

Differential Revision: D48356933

fbshipit-source-id: deddd9101979c1ef30d540b67216dc9611ced713
This commit is contained in:
Hani Damlaj
2023-08-17 15:37:50 -07:00
committed by Facebook GitHub Bot
parent b1eeddbdfe
commit a17a25d08a
8 changed files with 11 additions and 10 deletions

View File

@@ -684,7 +684,7 @@ void QuicClientTransport::processPacketData(
// was rejected, or we have derived 1-rtt keys and 0-rtt was never // was rejected, or we have derived 1-rtt keys and 0-rtt was never
// attempted. // attempted.
if (oneRttKeyDerivationTriggered) { if (oneRttKeyDerivationTriggered) {
auto serverParams = handshakeLayer->getServerTransportParams(); const auto& serverParams = handshakeLayer->getServerTransportParams();
if (!serverParams) { if (!serverParams) {
throw QuicTransportException( throw QuicTransportException(
"No server transport params", "No server transport params",
@@ -711,7 +711,7 @@ void QuicClientTransport::processPacketData(
TransportParameterId::initial_max_streams_uni, TransportParameterId::initial_max_streams_uni,
serverParams->parameters); serverParams->parameters);
processServerInitialParams( processServerInitialParams(
*clientConn_, std::move(*serverParams), packetNum); *clientConn_, serverParams.value(), packetNum);
cacheServerInitialParams( cacheServerInitialParams(
*clientConn_, *clientConn_,

View File

@@ -109,7 +109,7 @@ ClientHandshake::Phase ClientHandshake::getPhase() const {
return phase_; return phase_;
} }
folly::Optional<ServerTransportParameters> const folly::Optional<ServerTransportParameters>&
ClientHandshake::getServerTransportParams() { ClientHandshake::getServerTransportParams() {
return transportParams_->getServerTransportParams(); return transportParams_->getServerTransportParams();
} }

View File

@@ -87,7 +87,8 @@ class ClientHandshake : public Handshake {
/** /**
* Returns the negotiated transport parameters chosen by the server * Returns the negotiated transport parameters chosen by the server
*/ */
virtual folly::Optional<ServerTransportParameters> getServerTransportParams(); virtual const folly::Optional<ServerTransportParameters>&
getServerTransportParams();
~ClientHandshake() override = default; ~ClientHandshake() override = default;

View File

@@ -41,8 +41,8 @@ struct ClientTransportParametersExtension {
initialSourceCid_(initialSourceCid), initialSourceCid_(initialSourceCid),
customTransportParameters_(std::move(customTransportParameters)) {} customTransportParameters_(std::move(customTransportParameters)) {}
folly::Optional<ServerTransportParameters> getServerTransportParams() { const folly::Optional<ServerTransportParameters>& getServerTransportParams() {
return std::move(serverTransportParameters_); return serverTransportParameters_;
} }
QuicVersion encodingVersion_; QuicVersion encodingVersion_;

View File

@@ -101,7 +101,7 @@ std::unique_ptr<QuicClientConnectionState> undoAllClientStateForRetry(
void processServerInitialParams( void processServerInitialParams(
QuicClientConnectionState& conn, QuicClientConnectionState& conn,
ServerTransportParameters serverParams, const ServerTransportParameters& serverParams,
PacketNum packetNum) { PacketNum packetNum) {
auto maxData = getIntegerParameter( auto maxData = getIntegerParameter(
TransportParameterId::initial_max_data, serverParams.parameters); TransportParameterId::initial_max_data, serverParams.parameters);

View File

@@ -144,7 +144,7 @@ std::unique_ptr<QuicClientConnectionState> undoAllClientStateForRetry(
void processServerInitialParams( void processServerInitialParams(
QuicClientConnectionState& conn, QuicClientConnectionState& conn,
ServerTransportParameters serverParams, const ServerTransportParameters& serverParams,
PacketNum packetNum); PacketNum packetNum);
void cacheServerInitialParams( void cacheServerInitialParams(

View File

@@ -56,7 +56,7 @@ class MockClientHandshake : public ClientHandshake {
MOCK_METHOD(bool, isTLSResumed, (), (const)); MOCK_METHOD(bool, isTLSResumed, (), (const));
MOCK_METHOD(folly::Optional<bool>, getZeroRttRejected, ()); MOCK_METHOD(folly::Optional<bool>, getZeroRttRejected, ());
MOCK_METHOD( MOCK_METHOD(
folly::Optional<ServerTransportParameters>, const folly::Optional<ServerTransportParameters>&,
getServerTransportParams, getServerTransportParams,
()); ());
MOCK_METHOD(void, destroy, ()); MOCK_METHOD(void, destroy, ());

View File

@@ -316,7 +316,7 @@ class FakeOneRttHandshakeLayer : public FizzClientHandshake {
return connected_; return connected_;
} }
folly::Optional<ServerTransportParameters> getServerTransportParams() const folly::Optional<ServerTransportParameters>& getServerTransportParams()
override { override {
return params_; return params_;
} }