Implement basic HTTP tunnel support in bssl client.

For testing purposes.

Change-Id: Ied1b130e805bcf8cc5d1bd30a1ba5049d6f13a6d
Reviewed-on: https://boringssl-review.googlesource.com/17665
Commit-Queue: David Benjamin <davidben@google.com>
Commit-Queue: Steven Valdez <svaldez@google.com>
Reviewed-by: Steven Valdez <svaldez@google.com>
diff --git a/tool/transport_common.h b/tool/transport_common.h
index 7c157ba..b149671 100644
--- a/tool/transport_common.h
+++ b/tool/transport_common.h
@@ -18,6 +18,8 @@
 #include <openssl/ssl.h>
 #include <string.h>
 
+#include <string>
+
 // InitSocketLibrary calls the Windows socket init functions, if needed.
 bool InitSocketLibrary();
 
@@ -59,4 +61,8 @@
 // returns true on success and false otherwise.
 bool DoSMTPStartTLS(int sock);
 
+// DoHTTPTunnel sends an HTTP CONNECT request over |sock|. It returns true on
+// success and false otherwise.
+bool DoHTTPTunnel(int sock, const std::string &hostname_and_port);
+
 #endif  /* !OPENSSL_HEADER_TOOL_TRANSPORT_COMMON_H */