/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * */ #pragma once #include namespace quic { class QuicSharedUDPSocketFactory : public QuicUDPSocketFactory { public: ~QuicSharedUDPSocketFactory() override {} QuicSharedUDPSocketFactory() {} std::unique_ptr make(folly::EventBase* evb, int fd) override { auto sock = std::make_unique(evb); if (fd != -1) { sock->setFD( folly::NetworkSocket::fromFd(fd), folly::AsyncUDPSocket::FDOwnership::SHARED); sock->setDFAndTurnOffPMTU(); } return sock; } }; } // namespace quic