mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00

I gave up on removing proxy_info, user_agent and tcp_options. I don't think it's feasible to remove them without removing all the proxy code. The assumption that you can set the proxy and user agent long after you have created the factory is entrenched in unit tests and the code itself. So is the ability to set tcp opts depending on protocol or endpoint properties. It may be easier to untangle proxy stuff from the factory later, when it becomes a more first-class citizen and isn't passed via the allocator. Requires https://chromium-review.googlesource.com/c/chromium/src/+/1778870 to land first. Bug: webrtc:7447 Change-Id: Ib496e2bb689ea415e9f8ec1dfedff13a83fa4a8a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150799 Commit-Queue: Patrik Höglund <phoglund@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29091}
61 lines
2 KiB
C++
61 lines
2 KiB
C++
/*
|
|
* Copyright 2011 The WebRTC Project Authors. All rights reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef P2P_BASE_BASIC_PACKET_SOCKET_FACTORY_H_
|
|
#define P2P_BASE_BASIC_PACKET_SOCKET_FACTORY_H_
|
|
|
|
#include <string>
|
|
|
|
#include "api/packet_socket_factory.h"
|
|
|
|
namespace rtc {
|
|
|
|
class AsyncSocket;
|
|
class SocketFactory;
|
|
class Thread;
|
|
|
|
class BasicPacketSocketFactory : public PacketSocketFactory {
|
|
public:
|
|
BasicPacketSocketFactory();
|
|
explicit BasicPacketSocketFactory(Thread* thread);
|
|
explicit BasicPacketSocketFactory(SocketFactory* socket_factory);
|
|
~BasicPacketSocketFactory() override;
|
|
|
|
AsyncPacketSocket* CreateUdpSocket(const SocketAddress& local_address,
|
|
uint16_t min_port,
|
|
uint16_t max_port) override;
|
|
AsyncPacketSocket* CreateServerTcpSocket(const SocketAddress& local_address,
|
|
uint16_t min_port,
|
|
uint16_t max_port,
|
|
int opts) override;
|
|
AsyncPacketSocket* CreateClientTcpSocket(
|
|
const SocketAddress& local_address,
|
|
const SocketAddress& remote_address,
|
|
const ProxyInfo& proxy_info,
|
|
const std::string& user_agent,
|
|
const PacketSocketTcpOptions& tcp_options) override;
|
|
|
|
AsyncResolverInterface* CreateAsyncResolver() override;
|
|
|
|
private:
|
|
int BindSocket(AsyncSocket* socket,
|
|
const SocketAddress& local_address,
|
|
uint16_t min_port,
|
|
uint16_t max_port);
|
|
|
|
SocketFactory* socket_factory();
|
|
|
|
Thread* thread_;
|
|
SocketFactory* socket_factory_;
|
|
};
|
|
|
|
} // namespace rtc
|
|
|
|
#endif // P2P_BASE_BASIC_PACKET_SOCKET_FACTORY_H_
|