Merge pull request #2152 from joelmartinez/mdoc-preserver
[mono.git] / mcs / class / System / System.Net / FileWebRequest.cs
index 6cf6b3babfff504da521333be8c643577f7c2ad2..618c09ee145cb5ed92053efb2ab6dcc07b15a423 100644 (file)
@@ -64,6 +64,7 @@ namespace System.Net
                        this.webHeaders = new WebHeaderCollection ();\r
                }\r
                \r
+               [Obsolete ("Serialization is obsoleted for this type", false)]\r
                protected FileWebRequest (SerializationInfo serializationInfo, StreamingContext streamingContext) \r
                {\r
                        SerializationInfo info = serializationInfo;\r
@@ -90,11 +91,7 @@ namespace System.Net
                        get { return contentLength; }\r
                        set {\r
                                if (value < 0)\r
-#if NET_2_0\r
                                        throw new ArgumentException ("The Content-Length value must be greater than or equal to zero.", "value");\r
-#else\r
-                                       throw new ArgumentException ("value");\r
-#endif\r
                                contentLength =  value;\r
                        }\r
                }\r
@@ -118,13 +115,8 @@ namespace System.Net
                        get { return this.method; }\r
                        set {\r
                                if (value == null || value.Length == 0)\r
-#if NET_2_0\r
                                        throw new ArgumentException ("Cannot set null or blank "\r
                                                + "methods on request.", "value");\r
-#else\r
-                                       throw new ArgumentException ("Cannot set null or blank "\r
-                                               + "methods on request.");\r
-#endif\r
                                this.method = value;\r
                        }\r
                }\r
@@ -149,22 +141,41 @@ namespace System.Net
                        get { return timeout; }\r
                        set { \r
                                if (value < -1)\r
-#if NET_2_0\r
                                        throw new ArgumentOutOfRangeException ("Timeout can be "\r
                                                + "only set to 'System.Threading.Timeout.Infinite' "\r
                                                + "or a value >= 0.");\r
-#else\r
-                                       throw new ArgumentOutOfRangeException ("value");\r
-#endif\r
                                timeout = value;\r
                        }\r
                }\r
-               \r
+\r
+               public override bool UseDefaultCredentials\r
+               {\r
+                       get {\r
+                               throw new NotSupportedException ();\r
+                       }\r
+                       set {\r
+                               throw new NotSupportedException ();\r
+                       }\r
+               }\r
                // Methods\r
                \r
                private delegate Stream GetRequestStreamCallback ();\r
                private delegate WebResponse GetResponseCallback ();\r
 \r
+               static Exception GetMustImplement ()\r
+               {\r
+                       return new NotImplementedException ();\r
+               }\r
+               \r
+               /* LAMESPEC: Docs suggest this was present in 1.1 and\r
+                * 1.0 profiles, but the masterinfos say otherwise\r
+                */\r
+               [MonoTODO]\r
+               public override void Abort ()\r
+               {\r
+                       throw GetMustImplement ();\r
+               }\r
+\r
                public override IAsyncResult BeginGetRequestStream (AsyncCallback callback, object state) \r
                {\r
                        if (string.Compare ("GET", method, true) == 0 ||\r
@@ -231,8 +242,10 @@ namespace System.Net
                                asyncResult.AsyncWaitHandle.WaitOne ();\r
                        AsyncResult async = (AsyncResult) asyncResult;\r
                        GetResponseCallback cb = (GetResponseCallback) async.AsyncDelegate;\r
-                       WebResponse webResponse = cb.EndInvoke(asyncResult);\r
+                       FileWebResponse webResponse = (FileWebResponse) cb.EndInvoke(asyncResult);\r
                        asyncResponding = false;\r
+                       if (webResponse.HasError)\r
+                               throw webResponse.Error;\r
                        return webResponse;\r
                }\r
                \r
@@ -259,16 +272,20 @@ namespace System.Net
                        }\r
                        FileStream fileStream = null;\r
                        try {\r
-                               fileStream = new FileWebStream (this, FileMode.Open,\r
-                                FileAccess.Read, FileShare.Read);\r
+                               fileStream = new FileWebStream (this, FileMode.Open, FileAccess.Read, FileShare.Read);\r
+                               this.webResponse = new FileWebResponse (this.uri, fileStream);\r
                        } catch (Exception ex) {\r
-                               throw new WebException (ex.Message, ex);\r
+                               this.webResponse = new FileWebResponse (this.uri, new WebException (ex.Message, ex));\r
                        }\r
-                       this.webResponse = new FileWebResponse (this.uri, fileStream);\r
-                       return (WebResponse) this.webResponse;\r
+                       return this.webResponse;\r
                }\r
                \r
                void ISerializable.GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)\r
+               {\r
+                       GetObjectData (serializationInfo, streamingContext);\r
+               }\r
+\r
+               protected override void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)\r
                {\r
                        SerializationInfo info = serializationInfo;\r
                        info.AddValue ("headers", webHeaders, typeof (WebHeaderCollection));\r
@@ -279,11 +296,7 @@ namespace System.Net
                        info.AddValue ("contentLength", contentLength);\r
                        info.AddValue ("timeout", timeout);\r
                        info.AddValue ("fileAccess", fileAccess);\r
-#if NET_2_0\r
                        info.AddValue ("preauthenticate", false);\r
-#else\r
-                       info.AddValue ("preauthenticate", preAuthenticate);\r
-#endif\r
                }\r
                \r
                internal void Close ()\r