[Mono.Security]: Add new MonoTlsProviderFactory.CreateHttpListener() API to create...
[mono.git] / mcs / class / System / System.Net / WebConnectionData.cs
index 5bce80f0d5089a1daa9388697c28dd964bdc0dee..77d19540be16bfa46129a8ce540a491513a472bf 100644 (file)
@@ -34,26 +34,46 @@ namespace System.Net
 {
        class WebConnectionData
        {
-               public HttpWebRequest request;
+               HttpWebRequest _request;
                public int StatusCode;
                public string StatusDescription;
                public WebHeaderCollection Headers;
                public Version Version;
+               public Version ProxyVersion;
                public Stream stream;
-               public byte [] initialData;
-               public int initialOffset;
-               public int length;
+               public string[] Challenge;
+               ReadState _readState;
 
-               public void Init ()
+               public WebConnectionData ()
                {
-                       request = null;
-                       StatusCode = 0;
-                       StatusDescription = null;
-                       Headers = null;
-                       stream = null;
-                       initialData = null;
-                       initialOffset = 0;
-                       length = 0;
+                       _readState = ReadState.None;
+               }
+
+               public WebConnectionData (HttpWebRequest request)
+               {
+                       this._request = request;
+               }
+
+               public HttpWebRequest request {
+                       get {
+                               return _request;
+                       }
+                       set {
+                               _request = value;
+                       }
+               }
+
+               public ReadState ReadState {
+                       get {
+                               return _readState;
+                       }
+                       set {
+                               lock (this) {
+                                       if ((_readState == ReadState.Aborted) && (value != ReadState.Aborted))
+                                               throw new WebException ("Aborted", WebExceptionStatus.RequestCanceled);
+                                       _readState = value;
+                               }
+                       }
                }
        }
 }