Skip to content

Commit 28b5cf5

Browse files
afrindmeta-codesync[bot]
authored andcommitted
Add EarlyDataAppParamsHandler support to HQServer
Summary: Allow setting an EarlyDataAppParamsHandler on HQServer's QuicServerTransport to support 0-RTT early data validation. Reviewed By: sandarsh Differential Revision: D96708921 fbshipit-source-id: 7abca7b7c6ac10b223fe831d0a27414e53eca1a1
1 parent 69b2b60 commit 28b5cf5

3 files changed

Lines changed: 10 additions & 0 deletions

File tree

proxygen/httpserver/samples/hq/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ proxygen_add_library(proxygen_hq_server
4949
mvfst::mvfst_fizz_client_handshake_psk_cache
5050
mvfst::mvfst_server_quic_handshake_socket_holder
5151
mvfst::mvfst_server_server
52+
mvfst::mvfst_state_early_data_app_params_handler
5253
mvfst::mvfst_state_transport_settings
5354
wangle::wangle_ssl_ssl_config
5455
Folly::folly_network_address

proxygen/httpserver/samples/hq/HQServer.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@ QuicServerTransport::Ptr HQServerTransportFactory::make(
168168
transport->setQLogger(std::make_shared<HQLoggerHelper>(
169169
params_.qLoggerPath, params_.prettyJson, quic::VantagePoint::Server));
170170
}
171+
if (earlyDataAppParamsHandler_) {
172+
transport->setEarlyDataAppParamsHandler(earlyDataAppParamsHandler_);
173+
}
171174
return transport;
172175
}
173176

proxygen/httpserver/samples/hq/HQServer.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <proxygen/lib/http/session/HTTPTransaction.h>
1919
#include <quic/server/QuicHandshakeSocketHolder.h>
2020
#include <quic/server/QuicServer.h>
21+
#include <quic/state/EarlyDataAppParamsHandler.h>
2122

2223
namespace proxygen {
2324
class HQSession;
@@ -169,6 +170,10 @@ class HQServerTransportFactory
169170
}
170171
}
171172

173+
void setEarlyDataAppParamsHandler(quic::EarlyDataAppParamsHandler* handler) {
174+
earlyDataAppParamsHandler_ = handler;
175+
}
176+
172177
private:
173178
void onQuicTransportReady(
174179
std::shared_ptr<quic::QuicSocket> quicSocket) override;
@@ -185,6 +190,7 @@ class HQServerTransportFactory
185190
std::function<void(proxygen::HQSession*)> onTransportReadyFn_;
186191
folly::EventBaseLocal<wangle::ConnectionManager::UniquePtr> connMgr_;
187192
std::map<std::string, AlpnHandlerFn> alpnHandlers_;
193+
quic::EarlyDataAppParamsHandler* earlyDataAppParamsHandler_{nullptr};
188194
};
189195

190196
} // namespace quic::samples

0 commit comments

Comments
 (0)