| Index: webrtc/base/natserver.h
|
| diff --git a/webrtc/base/natserver.h b/webrtc/base/natserver.h
|
| index 460518bd2e40b5b54ec1a74e3416354e58cc2c2e..b803ad85877baac62133469f31295e770b645581 100644
|
| --- a/webrtc/base/natserver.h
|
| +++ b/webrtc/base/natserver.h
|
| @@ -11,114 +11,9 @@
|
| #ifndef WEBRTC_BASE_NATSERVER_H_
|
| #define WEBRTC_BASE_NATSERVER_H_
|
|
|
| -#include <map>
|
| -#include <set>
|
|
|
| -#include "webrtc/base/asyncudpsocket.h"
|
| -#include "webrtc/base/constructormagic.h"
|
| -#include "webrtc/base/socketaddresspair.h"
|
| -#include "webrtc/base/thread.h"
|
| -#include "webrtc/base/socketfactory.h"
|
| -#include "webrtc/base/nattypes.h"
|
| -#include "webrtc/base/proxyserver.h"
|
| -
|
| -namespace rtc {
|
| -
|
| -// Change how routes (socketaddress pairs) are compared based on the type of
|
| -// NAT. The NAT server maintains a hashtable of the routes that it knows
|
| -// about. So these affect which routes are treated the same.
|
| -struct RouteCmp {
|
| - explicit RouteCmp(NAT* nat);
|
| - size_t operator()(const SocketAddressPair& r) const;
|
| - bool operator()(
|
| - const SocketAddressPair& r1, const SocketAddressPair& r2) const;
|
| -
|
| - bool symmetric;
|
| -};
|
| -
|
| -// Changes how addresses are compared based on the filtering rules of the NAT.
|
| -struct AddrCmp {
|
| - explicit AddrCmp(NAT* nat);
|
| - size_t operator()(const SocketAddress& r) const;
|
| - bool operator()(const SocketAddress& r1, const SocketAddress& r2) const;
|
| -
|
| - bool use_ip;
|
| - bool use_port;
|
| -};
|
| -
|
| -// Implements the NAT device. It listens for packets on the internal network,
|
| -// translates them, and sends them out over the external network.
|
| -//
|
| -// TCP connections initiated from the internal side of the NAT server are
|
| -// also supported, by making a connection to the NAT server's TCP address and
|
| -// then sending the remote address in quasi-STUN format. The connection status
|
| -// will be indicated back to the client as a 1 byte status code, where '0'
|
| -// indicates success.
|
| -
|
| -const int NAT_SERVER_UDP_PORT = 4237;
|
| -const int NAT_SERVER_TCP_PORT = 4238;
|
| -
|
| -class NATServer : public sigslot::has_slots<> {
|
| - public:
|
| - NATServer(
|
| - NATType type, SocketFactory* internal,
|
| - const SocketAddress& internal_udp_addr,
|
| - const SocketAddress& internal_tcp_addr,
|
| - SocketFactory* external, const SocketAddress& external_ip);
|
| - ~NATServer() override;
|
| -
|
| - SocketAddress internal_udp_address() const {
|
| - return udp_server_socket_->GetLocalAddress();
|
| - }
|
| -
|
| - SocketAddress internal_tcp_address() const {
|
| - return tcp_proxy_server_->GetServerAddress();
|
| - }
|
| -
|
| - // Packets received on one of the networks.
|
| - void OnInternalUDPPacket(AsyncPacketSocket* socket, const char* buf,
|
| - size_t size, const SocketAddress& addr,
|
| - const PacketTime& packet_time);
|
| - void OnExternalUDPPacket(AsyncPacketSocket* socket, const char* buf,
|
| - size_t size, const SocketAddress& remote_addr,
|
| - const PacketTime& packet_time);
|
| -
|
| - private:
|
| - typedef std::set<SocketAddress, AddrCmp> AddressSet;
|
| -
|
| - /* Records a translation and the associated external socket. */
|
| - struct TransEntry {
|
| - TransEntry(const SocketAddressPair& r, AsyncUDPSocket* s, NAT* nat);
|
| - ~TransEntry();
|
| -
|
| - void WhitelistInsert(const SocketAddress& addr);
|
| - bool WhitelistContains(const SocketAddress& ext_addr);
|
| -
|
| - SocketAddressPair route;
|
| - AsyncUDPSocket* socket;
|
| - AddressSet* whitelist;
|
| - CriticalSection crit_;
|
| - };
|
| -
|
| - typedef std::map<SocketAddressPair, TransEntry*, RouteCmp> InternalMap;
|
| - typedef std::map<SocketAddress, TransEntry*> ExternalMap;
|
| -
|
| - /* Creates a new entry that translates the given route. */
|
| - void Translate(const SocketAddressPair& route);
|
| -
|
| - /* Determines whether the NAT would filter out a packet from this address. */
|
| - bool ShouldFilterOut(TransEntry* entry, const SocketAddress& ext_addr);
|
| -
|
| - NAT* nat_;
|
| - SocketFactory* external_;
|
| - SocketAddress external_ip_;
|
| - AsyncUDPSocket* udp_server_socket_;
|
| - ProxyServer* tcp_proxy_server_;
|
| - InternalMap* int_map_;
|
| - ExternalMap* ext_map_;
|
| - RTC_DISALLOW_COPY_AND_ASSIGN(NATServer);
|
| -};
|
| -
|
| -} // namespace rtc
|
| +// This header is deprecated and is just left here temporarily during
|
| +// refactoring. See https://bugs.webrtc.org/7634 for more details.
|
| +#include "webrtc/rtc_base/natserver.h"
|
|
|
| #endif // WEBRTC_BASE_NATSERVER_H_
|
|
|