Index: webrtc/base/networkmonitor.h |
diff --git a/webrtc/base/networkmonitor.h b/webrtc/base/networkmonitor.h |
index c45c81704072774497facdbf7821121dbd5a76d9..dd15f6e8f7244226d40084a0742d0316be63f470 100644 |
--- a/webrtc/base/networkmonitor.h |
+++ b/webrtc/base/networkmonitor.h |
@@ -17,6 +17,27 @@ |
#include "webrtc/base/thread.h" |
namespace rtc { |
+ |
+class IPAddress; |
+ |
+// Error values are negative. |
+enum NetworkBindingResults { |
+ NETWORK_BIND_SUCCESS = 0, // No error |
+ NETWORK_BIND_FAILURE = -1, // Generic error |
+ NETWORK_BIND_NOT_IMPLEMENTED = -2, |
+ NETWORK_BIND_ADDRESS_NOT_FOUND = -3, |
+ NETWORK_BIND_NETWORK_CHANGED = -4 |
+}; |
+ |
+class NetworkBinderInterface { |
+ public: |
+ // Binds a socket to the network that is attached to |address| so that all |
+ // packets on the socket |socket_fd| will be sent via that network. |
+ // This is needed because some operating systems (like Android) require a |
+ // special bind call to put packets on a non-default network interface. |
+ virtual int BindSocketToNetwork(int socket_fd, const IPAddress& address) = 0; |
+}; |
+ |
/* |
* Receives network-change events via |OnNetworksChanged| and signals the |
* networks changed event. |
@@ -62,8 +83,11 @@ class NetworkMonitorBase : public NetworkMonitorInterface, |
void OnMessage(Message* msg) override; |
+ protected: |
+ Thread* worker_thread() { return worker_thread_; } |
+ |
private: |
- Thread* thread_; |
+ Thread* worker_thread_; |
}; |
/* |