#if SECURITY_DEP
+#if MONOTOUCH || MONODROID
+using Mono.Security.Protocol.Tls;
+#else
+extern alias MonoSecurity;
+using MonoSecurity::Mono.Security.Protocol.Tls;
+#endif
+
using System.IO;
using System.Net.Sockets;
using System.Reflection;
using System.Threading;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
-using Mono.Security.Protocol.Tls;
namespace System.Net {
sealed class HttpConnection
return o_stream;
}
+ internal Socket Hijack (out ArraySegment<byte> buffered)
+ {
+ // TODO: disable normal request/response.
+ buffered = new ArraySegment<byte> (ms.GetBuffer(), position, (int)ms.Length - position);
+ RemoveConnection ();
+ var s = sock;
+ sock = null;
+ o_stream = null;
+ return s;
+ }
+
static void OnRead (IAsyncResult ares)
{
HttpConnection cnc = (HttpConnection) ares.AsyncState;
{
if (sock != null) {
Stream st = GetResponseStream ();
- st.Close ();
+ if (st != null)
+ st.Close ();
+
o_stream = null;
}