Move inlined methods from p2p/base/packetsocketfactory.h

Bug: webrtc:163
Change-Id: I9c1eee77032326c2cafc38dabdd415583f9e1817
Reviewed-on: https://webrtc-review.googlesource.com/16067
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20453}
diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn
index 22286c4..f6077ff 100644
--- a/p2p/BUILD.gn
+++ b/p2p/BUILD.gn
@@ -40,6 +40,7 @@
     "base/p2ptransportchannel.h",
     "base/packetlossestimator.cc",
     "base/packetlossestimator.h",
+    "base/packetsocketfactory.cc",
     "base/packetsocketfactory.h",
     "base/packettransportinterface.h",
     "base/packettransportinternal.h",
diff --git a/p2p/base/packetsocketfactory.cc b/p2p/base/packetsocketfactory.cc
new file mode 100644
index 0000000..d2f4c96
--- /dev/null
+++ b/p2p/base/packetsocketfactory.cc
@@ -0,0 +1,31 @@
+/*
+ *  Copyright 2017 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.
+ */
+
+#include <string>
+
+#include "p2p/base/packetsocketfactory.h"
+
+namespace rtc {
+
+PacketSocketTcpOptions::PacketSocketTcpOptions() = default;
+
+PacketSocketTcpOptions::~PacketSocketTcpOptions() = default;
+
+AsyncPacketSocket* PacketSocketFactory::CreateClientTcpSocket(
+    const SocketAddress& local_address,
+    const SocketAddress& remote_address,
+    const ProxyInfo& proxy_info,
+    const std::string& user_agent,
+    const PacketSocketTcpOptions& tcp_options) {
+  return CreateClientTcpSocket(local_address, remote_address, proxy_info,
+                               user_agent, tcp_options.opts);
+}
+
+}  // namespace rtc
diff --git a/p2p/base/packetsocketfactory.h b/p2p/base/packetsocketfactory.h
index df4a19d..aff67cd 100644
--- a/p2p/base/packetsocketfactory.h
+++ b/p2p/base/packetsocketfactory.h
@@ -21,14 +21,11 @@
   PacketSocketTcpOptions();
   ~PacketSocketTcpOptions();
 
-  int opts;
+  int opts = 0;
   std::vector<std::string> tls_alpn_protocols;
   std::vector<std::string> tls_elliptic_curves;
 };
 
-inline PacketSocketTcpOptions::PacketSocketTcpOptions() = default;
-inline PacketSocketTcpOptions::~PacketSocketTcpOptions() = default;
-
 class AsyncPacketSocket;
 class AsyncResolverInterface;
 
@@ -47,7 +44,7 @@
   };
 
   PacketSocketFactory() { }
-  virtual ~PacketSocketFactory() { }
+  virtual ~PacketSocketFactory() = default;
 
   virtual AsyncPacketSocket* CreateUdpSocket(const SocketAddress& address,
                                              uint16_t min_port,
@@ -84,16 +81,6 @@
   RTC_DISALLOW_COPY_AND_ASSIGN(PacketSocketFactory);
 };
 
-inline AsyncPacketSocket* PacketSocketFactory::CreateClientTcpSocket(
-    const SocketAddress& local_address,
-    const SocketAddress& remote_address,
-    const ProxyInfo& proxy_info,
-    const std::string& user_agent,
-    const PacketSocketTcpOptions& tcp_options) {
-  return CreateClientTcpSocket(local_address, remote_address, proxy_info,
-                               user_agent, tcp_options.opts);
-}
-
 }  // namespace rtc
 
 #endif  // P2P_BASE_PACKETSOCKETFACTORY_H_