Index: extensions/browser/api/socket/socket.h |
diff --git a/extensions/browser/api/socket/socket.h b/extensions/browser/api/socket/socket.h |
index 9ae45e7ac1dcff4754b601e87fd4bf50a152de41..5993bbdf1850e1c04a67aeddae2b31c0ac1a65e0 100644 |
--- a/extensions/browser/api/socket/socket.h |
+++ b/extensions/browser/api/socket/socket.h |
@@ -39,9 +39,21 @@ typedef base::Callback<void(int, net::TCPClientSocket*)> |
// we need to manage it in the context of an extension. |
class Socket : public ApiResource { |
public: |
- enum SocketType { TYPE_TCP, TYPE_UDP, }; |
+ enum SocketType { TYPE_TCP, TYPE_UDP, TYPE_TLS }; |
virtual ~Socket(); |
+ |
+ const std::string& hostname() const { return hostname_; } |
+ |
+ // The hostname of the remote host that this socket is connected to. Note: |
+ // This may contain an IP literal. In the case of IDNs, this will contain |
+ // a series of U-LABELs (UTF-8), not A-LABELs. IP literals for IPv6 will |
+ // be unbracketed. |
Ryan Sleevi
2014/07/15 00:18:45
This doc-comment documents what hostname_ stores,
lally
2014/07/16 16:19:44
Done.
|
+ void set_hostname(const std::string& hostname) { hostname_ = hostname; } |
+ |
+ // Note: |address| contains the resolved IP address, not the hostname of |
+ // the remote endpoint. In order to upgrade this socket to TLS, callers |
+ // must also supply the hostname of the endpoint via set_hostname(). |
virtual void Connect(const std::string& address, |
int port, |
const CompletionCallback& callback) = 0; |
@@ -100,7 +112,7 @@ class Socket : public ApiResource { |
const net::CompletionCallback& callback) = 0; |
virtual void OnWriteComplete(int result); |
- const std::string address_; |
+ std::string hostname_; |
bool is_connected_; |
private: |